poj 3356 AGTC
2012-10-22 01:14
211 查看
本题的意思和我们学校OJ上的编辑距离是一样的,只不过是一个中文,一个英文罢了。
有3中操作,删除,插入,替换。属于字符串匹配的DP问题。
如果a[i]==b[j],dp[i][j]=dp[i-1][j-1];
否则的话,状态转移方程就是
另外写的时候一定要注意初始化的问题。
-------------------------------------------------
有3中操作,删除,插入,替换。属于字符串匹配的DP问题。
如果a[i]==b[j],dp[i][j]=dp[i-1][j-1];
否则的话,状态转移方程就是
dp[i][j]=min(dp[i-1][j]+1,min(dp[i][j-1]+1,dp[i-1][j-1]+1));
另外写的时候一定要注意初始化的问题。
-------------------------------------------------
#include <iostream> #include <cstring> #include <cmath> using namespace std; int dp[1000+10][1000+10]; int main() { string a,b; int i,j,al,bl,ll; int t; while(cin>>al>>a>>bl>>b) { ll=max(al,bl); for(i=0; i<=al; ++i) for(j=0; j<=bl; ++j) dp[i][j]=0; for(i=1; i<=al; ++i) dp[i][0]=dp[i-1][0]+1; for(j=1; j<=bl; ++j) dp[0][j]=dp[0][j-1]+1; for(i=1; i<=al; ++i) for(j=1; j<=bl; ++j) { if(a[i-1]==b[j-1]) dp[i][j]=dp[i-1][j-1]; else dp[i][j]=min(dp[i-1][j]+1,min(dp[i][j-1]+1,dp[i-1][j-1]+1)); } cout<<dp[al][bl]<<endl; } return 0; }
相关文章推荐
- POJ 3356 AGTC(最长公共子序列)
- POJ-3356-AGTC
- POJ 3356 AGTC
- POJ 3356 AGTC.
- poj 3356 AGTC 【编辑距离】
- poj 3356 AGTC 经典动态规划题
- poj 3356 AGTC(动态规划:最短编辑距离)
- POJ 3356 AGTC(dp之公共最长子序列)
- poj 3356 AGTC
- (简单dp) poj 3356 AGTC
- POJ 3356 AGTC(最长公共子序列)
- POJ 3356 AGTC
- poj 3356 AGTC(lcs 变形题)
- [算法] poj 3356 字符串的距离 AGTC
- POJ 3356-AGTC(区间DP)
- POJ-3356 AGTC(编辑距离)
- POJ 3356 AGTC(最短编辑距离 DP)
- POJ 3356 AGTC (编辑距离 DP)
- POJ 3356 AGTC
- [算法] poj 3356 字符串的距离 AGTC