最長公共子串行問題 DP

2021-09-29 11:21:39 字數 543 閱讀 3738

problem description

給定兩個序列 x= 和 y=,找出x和y的最長公共子串行。

input

輸入資料有多組,每組有兩行 ,每行為乙個長度不超過500的字串(輸入全是大寫英文本母(a,z)),表示序列x和y。

output

每組輸出一行,表示所求得的最長公共子串行的長度,若不存在公共子串行,則輸出0。

sample input

abcbdab

bdcaba

sample output

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...