problem description
給定兩個序列 x= 和 y=,找出x和y的最長公共子串行。
input
輸入資料有多組,每組有兩行 ,每行為乙個長度不超過500的字串(輸入全是大寫英文本母(a,z)),表示序列x和y。
output
每組輸出一行,表示所求得的最長公共子串行的長度,若不存在公共子串行,則輸出0。
sample input
abcbdabsample outputbdcaba
4
比較近簡單的dp,用dp[i][j]這個二維陣列來存字串a第i位到字串b第j位的最大公共子串行。
注意一定不要從0開始便利這樣會越界。
#include #include using namespace std;
int main()
}printf("%d\n", dp[lena][lenb]);
}return 0;
}
dp 最長公共子串行問題
最長公共子串行問題 time limit 1000 ms memory limit 65536 kib problem description 給定兩個序列 x 和 y 找出x和y的最長公共子串行。input 輸入資料有多組,每組有兩行 每行為乙個長度不超過500的字串 輸入全是大寫英文本母 a,z...
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...