時間限制:
3000 ms | 記憶體限制:
65535 kb
難度:4 描述
求乙個字串的最長遞增子串行的長度
如:dabdbf最長遞增子串行就是abdf,長度為4
輸入第一行乙個整數0
輸出輸出字串的最長遞增子串行的長度
樣例輸入
3aaaababc
abklmncdefg
樣例輸出
1這裡採用兩種演算法:37
o(n*n):(a[1]...a[n] 存的都是輸入的數)
1、對於a[n]來說,由於它是最後乙個數,所以當從a[n]開始查詢時,只存在長度為1的不下降子串行;
2、若從a[n-1]開始查詢,則存在下面的兩種可能性:
(1)若a[n-1] < a[n] 則存在長度為2的不下降子串行 a[n-1],a[n].
(2)若a[n-1] > a[n] 則存在長度為1的不下降子串行 a[n-1]或者a[n]。
3、一般若從a[t]開始,此時最長不下降子串行應該是按下列方法求出的:
在a[t+1],a[t+2],...a[n]中,找出乙個比a[t]大的且最長的不下降子串行,作為它的後繼。
4、為演算法上的需要,定義乙個陣列:
d:array [1..n,1..3] of integer;
d[t,1]表示a[t]
d[t,2]表示從i位置到達n的最長不下降子串行的長度
d[t,3]表示從i位置開始最長不下降子串行的下乙個位置
#include#include#include#include#includeusing namespace std;
int main()
printf("%d\n",ans);
}}
NYOJ 單調遞增最長子序列
今天水一道 憋打我 描述 求乙個字串的最長遞增子串行的長度 如 dabdbf最長遞增子串行就是abdf,長度為4 輸入第一行乙個整數0 輸出輸出字串的最長遞增子串行的長度 樣例輸入 3 aaaababc abklmncdefg 樣例輸出 1 37 一題簡單的dp,不說啥了。c的輸入字串真心蛋疼,用了...
NYOJ 單調遞增最長子序列
時間限制 3秒 記憶體限制 128兆 題目描述 求乙個字串的最長遞增子串行的長度 如 dabdbf最長遞增子串行就是abdf,長度為4 輸入第一行乙個整數0輸出 輸出字串的最長遞增子串行的長度 樣例輸入 3 aaaababc abklmncdefg樣例輸出 1 37 include includeu...
NYOJ 17 單調遞增最長子序列
寫了兩個版本,一直找不出第乙個程式 錯了。先放著,回頭再來繼續改 f i max 1 0 j include includeusing namespace std define n 10005 char str n int f n int main if f i max2 max2 f i prin...