buct oj 最大公共子串行問題

2021-07-25 08:57:41 字數 739 閱讀 9068

時間限制: 1 sec  

記憶體限制: 128 mb [

提交]對序列x=(x

1, x

2, .., x

m),定義其子串行為(x

i1, x

i2, .., x

ik),i11, x

2, .., x

m),y=(y

1, y

2, .., y

n)的最長公共子串行的長度。

輸入為若干行,每行是乙個計算題目,每行包括兩個長度不超過100的字串,中間用空格隔開。

對每一行中的兩個字串,計算並輸出其最大公共子串行的長度。 每一行輸入的計算結果輸出一行。

a aa ababcd dcbaabcd bcabcdef aabacfe

11124

#include#include#include#include#include#includeusing namespace std;

int dp[1005][1005];

int main()

for(i=0;i<=strlen(b);i++)

for(i=1;i<=strlen(a);i++)

else if(dp[i-1][j]>=dp[i][j-1])

else}}

printf("%d\n",dp[strlen(a)][strlen(b)]);

}return 0;

}

最大公共子串行

對於兩個字串,請設計乙個高效演算法,求他們的最長公共子串行的長度,這裡的最長公共子串行定義為有兩個序列u1,u2,u3.un和v1,v2,v3.vn,其中ui給定兩個字串a和b,同時給定兩個串的長度n和m,請返回最長公共子串行的長度。保證兩串長度均小於等於300。測試樣例 1a2c3d4b56 10...

最大公共子串行,最大公共子串,最大回文子串

1 兩個字串中最長公共子串行 該問題是動態規劃的經典問題,找出的公共序列不一定是連續的,參考資料很多,這裡就貼出公式和 做個簡單的筆記。設序列a,b的長度分別為n和m,l i,j 為a i b j 的最長公共子串行長度,有遞推公式 時間複雜度為o mn 如下 define n 50 intlcs c...

DP最大公共子串行

題意 求兩個串的最長公共子串行 中的dp i j 表示0到i 1跟0到j 1的最長公共子串行 空間變化圖如下 分析如下 1.dp i j dp i 1 j 1 1 a i b j 因為加和都是要和他前一項的基礎上加和所以是dp i 1 j 1 2.dp i j max dp i 1 j dp i j...