動態規劃d題題目
#include#define n 500
#includeint main()
//初始化首列陣列c的第1列是0
for(j=0;j<=len2;j++) //初始化首行陣列c的第1行是0
for(i=1;i<=len1;i++) //動態規劃
for(j=1;j<=len2;j++) //比較x的第i個元素與y的第j個元素
if (x[i-1]==y[j-1]) //教材改錯:字串下標從0開始, x[0],y[0]
c[i][j]=c[i-1][j-1]+1; //相等
else
if (c[i-1][j]>c[i][j-1]) //不相等,選x[i-1]和y[i] 於x[i]和y[i-1]中大的
c[i][j]=c[i-1][j];
else
c[i][j]=c[i][j-1];
printf("%d\n",c[len1][len2]); //c[len1][len2]是最優值
} return 0;
}
動態規劃 最長公共子串行問題
最長公共子串行問題 longest common subsequence problem 簡稱lcs問題。題目為給定兩個序列x y求它們的lcs 最長公共子串行 這裡的子串行z的定義為 z中的元素既在x中也在y中,並且他們在x y中滿足嚴格的下標為乙個增序列 假設下標從左到右依次增大 另外,不要求z...
最長公共子串行問題 動態規劃
給定兩個字串s1s2.sn和t1t2.tn。求出這兩個字串最長的公共子串行 輸入 abcicba abdkscab 輸出 abca 定義dp i j 為s1 si和t1 tj對應的lcs的長度 s1 si 1和t1 tj 1對應的公共子列有三種情況 當si 1 tj 1時,在s1 si和t1 tj的...
最長公共子串行問題(動態規劃)
time limit 1000ms memory limit 65536kb problem description 給定兩個序列x input 輸入資料有多組,每組有兩行 每行為乙個長度不超過500的字串 輸入全是大寫英文本母 a,z 表示序列x和y。output 每組輸出一行,表示所求得的最長公...