動態規劃強化 codeup 最長上公升子串行

2021-09-12 04:04:40 字數 771 閱讀 3027

問題 a: 最長上公升子串行

時間限制: 2 sec 記憶體限制: 64 mb

提交: 327 解決: 171

[提交][狀態][討論版][命題人:外部匯入]

題目描述

乙個數列ai如果滿足條件a1 < a2 < … < an,那麼它是乙個有序的上公升數列。我們取數列(a1, a2, …, an)的任一子串行(ai1, ai2, …, aik)使得1 <= i1 < i2 < … < ik <= n。例如,數列(1, 7, 3, 5, 9, 4, 8)的有序上公升子串行,像(1, 7), (3, 4, 8)和許多其他的子串行。在所有的子串行中,最長的上公升子串行的長度是4,如(1, 3, 5, 8)。

現在你要寫乙個程式,從給出的數列中找到它的最長上公升子串行。
輸入

輸入包含兩行,第一行只有乙個整數n(1 <= n <= 1000),表示數列的長度。

第二行有n個自然數ai,0 <= ai <= 10000,兩個數之間用空格隔開。

輸出輸出只有一行,包含乙個整數,表示最長上公升子串行的長度。

樣例輸入

71 7 3 5 9 4 8

樣例輸出

4就跟著演算法筆記做

dp【i】記錄以i為下標的最大子列

核心在於dp【i】= max (jint main(int argc, char** ar**)

if(maxmax = dp[j];

} printf("%d",max);

return 0;

}在這裡插入**片

動態規劃 最長上公升子串行

問題描述 乙個數的序列bi,當b1 b2 bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a1,a2,an 我們可以得到一些上公升的子串行 ai1,ai2,aik 這裡1 i1 i2 ik n。比如,對於序列 1,7,3,5,9,4,8 有它的一些上公升子串行,如 1,7 3,4,8 等等...

動態規劃 最長上公升子串行

動態規劃 儲存遞迴中間結果,減少遞迴次數 總時間限制 2000ms 記憶體限制 65536kb 描述 乙個數的序列 bi,當 b1 b2 bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a1,a2 an 我們可以得到一些上公升的子串行 ai1,ai2 aik 這裡1 i1 i2 ik n。...

動態規劃 最長上公升子串行

總時間限制 2000ms 記憶體限制 65536kb 描述乙個數的序列bi,當b1 b2 bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a1,a2,an 我們可以得到一些上公升的子串行 ai1,ai2,aik 這裡1 i1 i2 ik n。比如,對於序列 1,7,3,5,9,4,8 有它...