dp 最長公共子串行問題

2021-09-28 17:05:25 字數 777 閱讀 6548

最長公共子串行問題

time limit: 1000 ms memory limit: 65536 kib

problem description

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

input

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

output

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

sample input

abcbdab

bdcaba

sample output

4

#include

#include

#include

using

namespace std;

const

int n =

501;

char a[n]

,b[n]

;int dp[n]

[n];

intmain()

for(

int j =

0; j <= lenb; j++

)///狀態轉移方程

for(

int i =

1; i<=lena; i++)}

}printf

("%d\n"

,dp[lena]

[lenb]);

}return0;

}

最長公共子串行問題 DP

problem description 給定兩個序列 x 和 y 找出x和y的最長公共子串行。input 輸入資料有多組,每組有兩行 每行為乙個長度不超過500的字串 輸入全是大寫英文本母 a,z 表示序列x和y。output 每組輸出一行,表示所求得的最長公共子串行的長度,若不存在公共子串行,則輸...

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