給定兩個長度分別為n和m的字串a和b,求既是a的子串行又是b的子串行的字串長度最長是多少。
思路:
輸入格式
第一行包含兩個整數n和m。
第二行包含乙個長度為n的字串,表示字串a。
第三行包含乙個長度為m的字串,表示字串b。
字串均由小寫字母構成。
輸出格式
輸出乙個整數,表示最大長度。
資料範圍
1≤n≤10001≤n≤1000,
輸入樣例:
4 5
acbd
abedc
輸出樣例:
3
#include using namespace std;
const int n = 1010;
int n, m;
char a[n], b[n];
int f[n][n];
int main()
cout << f[n][m] << endl;
return 0;
}
最長公共子串行(線性DP)
給定兩個長度分別為n和m的字串a和b,求既是a的子串行又是b的子串行的字串長度最長是多少。第一行包含兩個整數n和m。第二行包含乙個長度為n的字串,表示字串a。第三行包含乙個長度為m的字串,表示字串b。字串均由小寫字母構成。輸出乙個整數,表示最大長度。1 n,m 1000 4 5 acbd abedc...
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...