hdoj1423 最長上公升公共子串行

2022-05-29 04:06:12 字數 713 閱讀 6379

hdoj1423

題目分析: 

兩個陣列a[n1] , b[n2], 求最長上公升公共子串行。 

我們可用一維儲存 f[i] 表示 b 陣列以 j 結尾, 與 a 陣列構成的最長公共上公升子串行。 對陣列 d 的任意 j 位, 都列舉 a[1 ~n1]。 

當a[i] == b[j] 時 , 在1 ~ j - 1中 找出 b[k] 小於 a[ i ] 並且 d[k] 的值最大。 當 a[ i ] > b [j ] 時, 在0到j-1中,對於小於a[i]的,儲存f值的最優解 (儲存小於a [ i ] 並且 d[k]值最大的值所在的位置)。

#include#include

#include

#include

#include

#include

using

namespace

std;

int t, n1, n2, a[505], b[505], d[505

];int

lcis()

else

if(a[i] >b[j])}}

int mx = 0

;

for(int i = 1; i <= n2; i++)

mx =max(mx, d[i]);

return

mx;}

intmain()

return0;

}

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

核心 for int i 1 ifor int j 1 jif a i b j else hdu5248 樹狀陣列優化 nl ogn nlo gn include using namespace std const int maxn 100005 char a maxn int len int bi...

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

求最長公共子串行有幾種方法 include include using namespace std include include const int inf 0x3f3f3f3f const int maxn 10005 int a maxn ints maxn int dp maxn int d...

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 等等。這些子串中最長...