最長上公升子串行 dp入門題

2021-10-04 11:19:52 字數 966 閱讀 2171

給定乙個長度為n的數列,求數值嚴格單調遞增的子串行的長度最長是多少。

輸入格式

第一行包含整數n。

第二行包含n個整數,表示完整序列。

輸出格式

輸出乙個整數,表示最大長度。

資料範圍

1≤ n ≤1000,

−109≤ 數列中的數 ≤109

輸入樣例

73 1 2 1 8 5 6

輸出樣例

4

題目分析:

最長上身子序列問題也是線性dp的乙個非常經典的題目。

狀態表示:f[i] //表示從第乙個數開始算,以a[i]為結尾的最大上公升子串行的長度。(以a[i]結尾的所有上公升序列中屬性為最大值的那乙個)

狀態計算:f[i] = max(f[i], f[j] + 1) //注意有乙個特判條件,只有a[j]>a[i]的時候,才存在f[j]+1這個狀態

注意:有乙個邊界,若前面沒有比i小的,f[i]為1(自己為結尾)。

時間複雜度為o(n^2).

**如下:

#include

#include

#include

#include

using

namespace std;

const

int n=

1005

;int

main()

cout

}

DP題 最長上公升子串行

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

Dp 最長上公升子串 最長上公升子串行

乙個數的子串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,5,9 等等。這些子串中最長...

最長上公升子串行(DP)

time limit 3000ms memory limit 65536k 有疑問?點這裡 乙個數的序列bi,當b 1 b 2 b s的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a 1,a 2,a n 我們可以得到一些上公升的子串行 a i1,a i2,a ik 這裡1 i 1 i 2 i...