nyoj17 單調遞增最長子序列

2021-08-08 17:21:53 字數 857 閱讀 5899

單調遞增最長子序列

時間限制:3000 ms | 記憶體限制:65535 kb

難度:4

描述 求乙個字串的最長遞增子串行的長度

如:dabdbf最長遞增子串行就是abdf,長度為4

輸入 第一行乙個整數0< n<20,表示有n個字串要處理

隨後的n行,每行有乙個字串,該字串的長度不會超過10000

輸出 輸出字串的最長遞增子串行的長度

樣例輸入

3 aaa

ababc

abklmncdefg

樣例輸出

1 3

7n*logn演算法求單調遞增子串行,存一下模板;

求單調遞增主要是兩步判斷:

1:a[i]>當前最長單調遞增序列的末尾,長度+1,將a[i]放在末尾

2:a[i]<=當前最長單調遞增序列的末尾,找出最左邊的》a[i]的位置,替換為a[i]

思想就是小的盡量靠前,這樣構造出的遞增序列才盡可能長

#include

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

const

int n=1e4+200;

char a[n],dp[n];

int main()

else

}printf("%d\n",len);

}return

0;}

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...

nyoj 17 單調遞增最長子序列

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 求乙個字串的最長遞增子串行的長度 如 dabdbf最長遞增子串行就是abdf,長度為4 輸入第一行乙個整數0 輸出輸出字串的最長遞增子串行的長度 樣例輸入 3 aaaababc abklmncdefg 樣例輸出 1 3 簡單動規...

nyoj 17 單調遞增最長子序列

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 求乙個字串的最長遞增子串行的長度 如 dabdbf最長遞增子串行就是abdf,長度為4 輸入第一行乙個整數0 輸出輸出字串的最長遞增子串行的長度 樣例輸入 3 aaaababc abklmncdefg 樣例輸出 1 37 思路 ...