[poj3356]字符串dp..2014.8.11
来源:互联网 发布:energy star软件 编辑:程序博客网 时间:2024/04/30 05:42
/* * dp[i][j]:str1的前i个构成的串变成str2前j个构成的串需要的最少步数 * dp[i][j] = min{ * dp[i-1][j-1]+(str1[i]==str2[j]?0:1)->改变 * dp[i-1][j] + 1->删除str1第i个字符 * dp[i][j-1] + 1->添加str2第j个字符到str1的第i个位置 * } * 因为dp[i][j]全部从dp[i-1]转移而来,所以用滚动数组把4M内存优化到了300+K,非常的犀利.嘿嘿 */#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAX = 1024;const int INF = 0xfffffff;char a[MAX], b[MAX];int dp1[MAX], dp2[MAX];int main() {int la, lb;while (~scanf(" %d %s %d %s", &la, a+1, &lb, b+1)) {for (int i = 0; i <= lb; ++i) dp2[i] = i;for (int i = 1; i <= la; ++i) {dp2[0] = i-1;dp1[0] = i;for (int j = 1; j <= lb; ++j) {dp1[j] = dp2[j-1] + (a[i] == b[j] ? 0 : 1);dp1[j] = min(dp1[j], min(dp2[j]+1, dp1[j-1]+1));}memcpy(dp2, dp1, sizeof(int)*(lb+1));}printf("%d\n", dp1[lb]);}return 0;}
0 0
- [poj3356]字符串dp..2014.8.11
- [poj3356]字符串dp
- POJ3356 AGTC DP
- poj3356 AGTC dp把一个字符串经过最少步数转为另一个字符串
- dp编辑距离 poj3356 AGTC
- poj3356
- POJ3356
- POJ3356
- poj3356 AGTC(经典DP最小编辑距离)
- POJ3356 AGTC
- poj3356 - AGTC
- poj3356---AGTC
- poj3356(LCS)
- 【POJ3356】AGTC (动态规划dp+最长公共子序列lcs)
- 2011.12.16 DP poj3356 1887 2533 1631 1157 1088 【历史以来,AC题目最多的一天】
- POJ3356 AGTC (LCS)
- POJ3356——AGTC
- 最小编辑距离-poj3356
- unique index与non-unique index的dump区别
- Perl语言学习笔记 7 正则表达式
- 属性和setter以及getter
- Google即将改变世界的九大项目
- JS验证通过之后才提交表单
- [poj3356]字符串dp..2014.8.11
- POJ 3667 Hotel. (线段树 区间合并)
- java的字符串
- 适当放松放松的非
- easyui datagrid 键盘上下控制选中行示例
- [poj3356]字符串dp
- Protobuf在C/C++中的应用
- 传说中的数据结构
- 并查集(初始化为-1)