51Nod 1183
来源:互联网 发布:c语言优先级排序 编辑:程序博客网 时间:2024/06/05 15:05
仔细想想。
dp递推式:
if(s1[i] != s2[j]) dp[i][j] = min(dp[i - 1][j - 1],min(dp[i - 1][j],dp[i][j - 1])) + 1;else dp[i][j] = dp[i - 1][j - 1];#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<vector>#include<algorithm>#include<map>using namespace std;const int maxn = 5000 + 10;#define INF 0x3f3f3f3f#define clr(x,y) memset(x,y,sizeof x )typedef long long ll;#define eps 10e-10const ll Mod = 1000000007;typedef pair<ll, ll> P;char s1[maxn],s2[maxn];int dp[maxn][maxn];int n;int main(){ while( ~ scanf("%s%s",s1 + 1,s2 + 1)) { int n = strlen(s1 + 1),m = strlen(s2 + 1); dp[0][0] = 0; for(int i = 1; i <= n; i ++) dp[i][0] = i; for(int i = 1; i <= m; i ++) dp[0][i] = i; for(int i = 1; i <= n; i ++) { for(int j = 1; j <= m; j ++) { if(s1[i] != s2[j]) dp[i][j] = min(dp[i - 1][j - 1],min(dp[i - 1][j],dp[i][j - 1])) + 1; else dp[i][j] = dp[i - 1][j - 1]; } }// for(int i = 1; i <= n; i ++)// {// for(int j = 1; j <= m; j ++)// printf("%10d",dp[i][j]);// cout << endl;// } printf("%d\n",dp[n][m]); } return 0;}
阅读全文
0 0
- 51nod 1183 (dp)
- 51Nod 1183
- 51nod 1183 编辑距离
- 51nod 1183 编辑距离
- 51nod 1183 编辑距离
- 51nod 1183 编辑距离
- [51nod]1183 编辑距离
- 51 nod 1183 编辑距离
- 51nod--1183 编辑距离
- 51nod 1183 编辑距离
- 51nod 1183 编辑距离
- 51Nod 1183 编辑距离
- 51nod 1183 编辑距离
- 51Nod 1183 编辑距离
- 51Nod 1183编辑距离
- 51Nod 1183编辑距离
- 51Nod-1183-编辑距离
- 51Nod 1183:编辑距离
- codeforces 777B
- jQuery, CSS选择符 属性选择符 自定义选择符1
- SSH pom.xml参考
- 单词数解题报告
- Shell脚本基础17-while循环读取文件内容
- 51Nod 1183
- JAVA Calendar详解
- 如何在IDEA下输入命令行参数
- bzoj 2333: [SCOI2011]棘手的操作 离线+线段树
- Spring MVC web.xml配置
- 发财致富尽在现货黄金白银交易
- maven profile 结合spirng注解使用——实现配置文件最小化
- 替换空格
- 新闻客户端