poj 3356 AGTC
2012-04-26 21:57
323 查看
题目链接:http://poj.org/problem?id=3356
题目思路:类似于最长公共子序列,转移方程dp[i][j]=min(dp[i-1][j]+1,dp[i][j-1]+1,dp[i-1][j-1]+(s[i-1]!=str[j-1]));
题目思路:类似于最长公共子序列,转移方程dp[i][j]=min(dp[i-1][j]+1,dp[i][j-1]+1,dp[i-1][j-1]+(s[i-1]!=str[j-1]));
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<string> #include<queue> #include<algorithm> #include<vector> #include<stack> #include<list> #include<iostream> #include<map> using namespace std; #define inf 0x3f3f3f3f #define Max 110 int max(int a,int b) { return a>b?a:b; } inline int min(int a,int b) { return a<b?a:b; } int x,y; char s[1010],str[1010]; int dp[1010][1010]; int main() { int i,j; while(scanf("%d%s%d%s",&x,s,&y,str)!=EOF) { dp[0][0]=0; for(i=1;i<=x;i++) dp[i][0]=i; for(j=1;j<=y;j++) dp[0][j]=j; for(i=1;i<=x;i++) for(j=1;j<=y;j++) { dp[i][j]=min(dp[i-1][j-1]+1,dp[i-1][j]+1); dp[i][j]=min(dp[i][j-1]+1,dp[i][j]); if(s[i-1]==str[j-1]) dp[i][j]=min(dp[i-1][j-1],dp[i][j]); } printf("%d\n",dp[x][y]); } }
相关文章推荐
- POJ 3356 AGTC 解题报告(Edit Distance,DP)
- POJ 3356 AGTC
- POJ 3356 AGTC(最小编辑距离)
- POJ 3356 AGTC(DP-最小编辑距离)
- POJ-3356-AGTC
- POJ 3356 AGTC (最小编辑距离)
- POJ-3356 AGTC (最短编辑距离问题)
- POJ 3356 AGTC 最短编辑距离 DP
- POJ 3356 AGTC(最长公共子)
- poj 3356 AGTC 简单dp
- POJ 3356.AGTC(DP)
- 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(算法导论15-5编辑距离) 经典dp
- poj 3356 AGTC(dp,最小编辑距离)