hud1151 動態規劃 最大的公共子序列
就是求最大公共子序列,很經典的一題,這題就當複習演算法啦
遞推公式:
c[i][j]=c[i-1][j-1]+1 當a[i-1]==b[j-1]時
c[i][j]=c[i-1][j]>c[i][j-1]?c[i-1][j]:c[i][j-1] 當a[i-1]!=a[j-1]時
#include<stdio.h>
#include<cstring>
int c[500][500];
char a[500],b[500];
int LCS(int m,int n)
{
int i,j;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++){
if(a[i-1]==b[j-1])
{
c[i][j]=c[i-1][j-1]+1;
}
else{
c[i][j]=c[i-1][j]>c[i][j-1]?c[i-1][j]:c[i][j-1];
}
}
}
return c[m][n];
}
int main()
{
int i,j,m,n;
while(scanf("%s %s",a,b)!=EOF)
{
memset(c,0,sizeof(c));
i=strlen(a);
j=strlen(b);
printf("%d\n",LCS(i,j));
}
return 0;
}
相關文章
- 動態規劃-最長公共子序列動態規劃
- 動態規劃——最長公共子序列動態規劃
- 動態規劃之最長公共子序列求解動態規劃
- 動態規劃(最長公共子序列LCS)動態規劃
- 最長公共子序列問題—動態規劃sdut動態規劃
- 力扣1143. 最長公共子序列 動態規劃之最長公共子序列力扣動態規劃
- 動態規劃經典問題----最長公共子序列動態規劃
- 詳解動態規劃最長公共子序列--JavaScript實現動態規劃JavaScript
- 最長公共子序列&迴文字串 nyoj動態規劃字串動態規劃
- [演算法筆記]動態規劃之最長公共子串和最長公共子序列演算法筆記動態規劃
- “最長公共字串子序列”問題的動態規劃法演算法字串動態規劃演算法
- 動態規劃:最長上升子序列動態規劃
- 最長上升子序列動態規劃動態規劃
- 淺談最長公共子序列引發的經典動態規劃問題動態規劃
- 以最長公共子序列問題理解動態規劃演算法(DP)動態規劃演算法
- 動態規劃-最長上升子序列模型動態規劃模型
- 動態規劃7:最長上升子序列LIS動態規劃
- 雙序列動態規劃動態規劃
- 動態規劃求解最長上升子序列問題動態規劃
- 【LeetCode動態規劃#14】子序列系列題(最長遞增子序列、最長連續遞增序列、最長重複子陣列、最長公共子序列)LeetCode動態規劃陣列
- [LeetCode解題] -- 動態規劃二 [ 子串、子序列問題 ]LeetCode動態規劃
- LeetCode 1626. 無矛盾的最佳球隊---【動態規劃】最長上升子序列變換版-->最大上升子序列和LeetCode動態規劃
- 禮物的最大價值(一維動態規劃&二維動態規劃)動態規劃
- 動態規劃之子序列問題動態規劃
- 動態規劃最大欄位和動態規劃
- 最大子陣——動態規劃DP動態規劃
- python 動態規劃(揹包問題和最長公共子串)Python動態規劃
- 動態規劃求最長降序序列動態規劃
- Java 演算法-最大矩形(動態規劃)Java演算法動態規劃
- 【動態規劃】求最大連續bit數動態規劃
- 最長公共子序列
- 【動態規劃(一)】動態規劃基礎動態規劃
- 北京大學郭煒-最長上升子序列 動態規劃講解動態規劃
- 磁帶最大利用率問題——動態規劃動態規劃
- 動態規劃解最長迴文子序列並優化空間複雜度動態規劃優化複雜度
- 最長公共子序列(JAVA)Java
- 動態規劃動態規劃
- 動態規劃求解矩陣累計和最大的路徑動態規劃矩陣