51nod 最长公共子序列问题
来源:互联网 发布:淘宝淘气值申请信用卡 编辑:程序博客网 时间:2024/05/22 12:17
代码:
#include <cstdio>#include <cstring>#include <iostream>using namespace std;#define MAX 1001#define max(x,y) ((x)>(y)?(x):(y))char s1[MAX], s2[MAX];int maxLen[MAX][MAX];char ans[MAX];int main(){ int k = 0; scanf("%s%s", s1,s2); int len1 = strlen(s1); int len2 = strlen(s2); for (int i = 1; i <= len1; i++) { for (int j = 1; j <= len2; j++) { if (s1[i-1] == s2[j-1]) maxLen[i][j] = maxLen[i - 1][j - 1] + 1; else maxLen[i][j] = max(maxLen[i][j - 1], maxLen[i-1][j]); } } /*for (int i = 1; i <= len1; i++) { for (int j = 1; j <= len2; j++) { printf("%d ",maxLen[i][j]); } printf("\n"); }*/ int x_len = len1; int y_len = len2; int i,j,o=0; for(i = x_len, j = y_len; i >= 1 && j >= 1;) { if(s1[i - 1] == s2[j - 1]) { //cout << s1[i - 1];//倒序打印的 ans[o++]=s1[i-1]; i--; j--; } else { // if(arr[i][j -1] >= arr[i - 1][j])//打印:B A D B if(maxLen[i][j -1] > maxLen[i - 1][j]) //打印:A B C B { j--; } else { i--; } } } for(int i=strlen(ans)-1;i>=0;i--) printf("%c",ans[i]); //for(int i=0;i<strlen(ans);i++) // printf("%c",ans[i]); //printf("%s\n", ans); return 0;}
0 1
- 51nod 最长公共子序列问题
- 51nod 最长公共子序列问题
- 51nod-最长公共子序列问题
- 51nod最长公共子序列问题
- 51nod,最长公共子序列问题
- 51NOD 最长公共子序列问题
- 51NOD-最长公共子序列问题
- LCS 51NOD 最长公共子序列问题
- 51nod最长公共子序列
- 51 nod 最长公共子序列
- 最长公共子序列Lcs 51Nod
- 最长公共子序列Lcs---51--Nod
- 【最长公共子序列】51 nod 1006 最长公共子序列Lcs
- 51nod 1006:最长公共子序列Lcs
- 51nod 最长公共子序列 (DP+回溯)
- 51Nod 1006 最长公共子序列Lcs(dp)
- 51nod动态规划入门--最长公共子序列
- 51Nod-1006-最长公共子序列Lcs
- html页面中点击链接自动跳出相应用户的QQ聊天窗口的做法
- Android笔记--Android Studio 引用第三方开源类okhttp、gson库时的打包混淆
- mysql去掉重复值的简单方法
- Eclipse+ADT+Android SDK 搭建安卓开发环境
- 行人检测(综述1)
- 51nod 最长公共子序列问题
- BZOJ 2067 POI 2004 SZN 树形DP 贪心 二分答案
- mysql数据库如何创建索引
- 如何查找性能最差的SQL语句
- Win10修改编辑hosts文件无法保存怎么办
- Java中策略设计模式
- 了解iOS上的可执行文件和Mach-O格式
- 四种方案解决ScrollView嵌套ListView问题
- 行人检测(综述2)