給定乙個長度為n的數列(w[n]),求數值嚴格單調遞增的子串行的長度最長是多少。
輸入格式 第一行包含整數n。
第二行包含n個整數,表示完整序列。
輸出格式 輸出乙個整數,表示最大長度。
資料範圍 1 ≤ n ≤ 1000, −1e9 ≤ 數列中的數 ≤ 1e9
輸入樣例:
7
3 1 2 1 8 5 6
輸出樣例:
4
#include using namespace std;
const int n = 1010;
int n;
int w[n], f[n];
int main()
mx = max(mx, f[i]);
}cout << mx << endl;
return 0;
}
#include using namespace std;
const int n = 1010;
int n, cnt;
int w[n], f[n];
int main()
f[r] = w[i];}}
cout << cnt << endl;
return 0;
}
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普通演算法 f i 以第i個數結尾的最長上公升子串行的長度 每乙個上公升子串行包括自己,將每乙個值初始化為1,之後遍歷之前的值,如果該值大於之前的值,則比較是現在的值大還是之前某個值加1大。最後答案不是為f陣列的最後乙個數,因為最長上公升子串行不一定以最後乙個數為結尾。轉移方程 if w...
最長上公升子串行
問題描述 乙個數的序列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 等等...