EOJ 2857 编辑距离(动态规划)
来源:互联网 发布:mac steam存储目录 编辑:程序博客网 时间:2024/05/21 23:23
题目
http://acm.ecnu.edu.cn/problem/2857
题意:有两个字符串(仅有英文小写字母组成) A,B。我们可以通过一些操作将 A 修改成 B。操作有三种:1 修改一个字母,2 删除一个字母,3 插入一个字母。
定义编辑距离为将 A 通过上述操作修改成 B 的最少次数,求最小编辑距离。
解题思路
编辑距离算法详解:Levenshtein Distance算法
AC代码
#include <bits/stdc++.h>using namespace std;const int maxlen = 505;int dp[maxlen][maxlen]; //(m+1)*(n+1)int main(){ int kase; cin >> kase; while(kase--) { string s, t; cin >> s >> t; int m = s.length(), n = t.length(), tmp; //s[1..m], t[1..n] fill(dp[0], dp[0] + (m+1)*(n+1), 0); for (int j = 0; j <= n; ++j) //s空->t[1..j], 增加 dp[0][j] = j; for (int i = 0; i <= m; ++i) //s[1..i]->t空,删除 dp[i][0] = i; for (int i = 1; i <= m; ++i) { for (int j = 1; j <= n; ++j) { tmp = (s[i-1] == t[j-1])?0:1; dp[i][j] = min( min(dp[i-1][j] + 1, dp[i][j-1] + 1), dp[i-1][j-1] + tmp); } } cout << dp[m][n] << endl; } return 0;}
阅读全文
0 0
- EOJ 2857 编辑距离(动态规划)
- EOJ 2857:编辑距离(DP)
- 编辑距离(动态规划)
- 动态规划 编辑距离
- 编辑距离 动态规划
- 编辑距离--动态规划
- 动态规划 - 编辑距离
- 动态规划---编辑距离
- 编辑距离(动态规划法)
- 编辑距离(动态规划经典)
- 算法:编辑距离问题(动态规划)
- 【动态规划】字符串编辑距离(Levenshtein距离)算法
- 动态规划求编辑距离
- 动态规划求编辑距离
- 动态规划-编辑距离问题
- 动态规划之编辑距离
- 动态规划求解编辑距离
- 动态规划:编辑距离问题
- 安卓开发:以Base64字符串形式上传文件——从Android选择文件并上传
- 线程安全的单例模式是否真的安全
- AJAX,js的escape函数传中文值到Servlet为NULL。
- Tyvj1091
- java常见类型默认值及范围
- EOJ 2857 编辑距离(动态规划)
- (网易2018校招笔试)[编程题] 字符串碎片
- YTU.2677: 韩信点兵
- Hadoop-2.7.4 八节点分布式集群安装
- seaborn主题风格与调色板设定
- Java中的构造方法
- Java泛型之泛型类
- 文章标题
- IBM与麻省理工学院联合建立AI实验室 承诺投资2.4亿美元