DP經典應用(三)最長公共子串行LCS問題

2021-07-30 04:31:58 字數 494 閱讀 6269

問題描述:

給定兩個字串 s1,s2,…sn 和 t1,t2,…tm。求出這兩個字串最長的公共子串行的長度。

樣例輸入:44

a b c d

b e c d

樣例輸出:

3####分析:

按照3個步驟:

-3.計算最優解的值(遞推)

**如下:

#include#include#includeusing namespace std;

const int maxn = 1000+10;

char s1[maxn],s2[maxn];

int dp[maxn][maxn];//dp[i][j]為s11...s1i和s21....s2j對應的lsc長度

int main()

else

} } printf("%d\n",dp[m][n]);

return 0;

}

DP 最長公共子串行

解題報告 題目 演算法 dp 最長公共子串行 思路 最長公共子串行,英文縮寫為lcs longest common subsequence 其定義是,乙個數列 s 如果分別是兩個或多個已知數列的子串行,且是所有符合此條件序列中最長的,則 s 稱為已知序列的最長公共子串行。d i j 表示s1的第i位...

最長公共子串行 DP

有序子串行定義 若x 則它的子串行為y 即原序列調出若干項組成的序列且下標要求有序。lcs 最長公共子串行 定義 給定兩個序列x 和y 存在乙個嚴格遞增的x的下標序列為,對所有的j 1,2,3.k,滿足xi yj,例如x 1 4 3 2 5 y 4 3 5 7 則x和y的最長公共子串行為 4 3 5...

最長公共子串行 DP

最長公共子串行 lcs.pas c cpp 問題描述 乙個給定序列的子串行是在該序列中刪去若干元素後得到的序列。確切地說,若給定序列x x1,x2,xm 則另一串行z z1,z2,zk 是x的子串行是指存在乙個嚴格遞增的下標序列 i1,i2,ik 使得對於所有j 1,2,k有 xij zj 例如,序...