HDU 1503 Advanced Fruits (LCS升级版)
来源:互联网 发布:淘宝直通车报名条件 编辑:程序博客网 时间:2024/06/05 18:23
题目大意:将两个字符串结合起来,他们的公共子串只输出一次
根据LCS的原理,将每个字符都进行标记,看两个字符串中对应的字符究竟处于什么状态,然后输出,其标记为公共子串的字符只输出一次即可,也是一道模板题了。
http://blog.csdn.net/libin56842/article/details/9618529
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;char s1[1000],s2[1000];int len1,len2,dp[1000][1000],mark[1000][1000];void LCS(){ int i,j; memset(dp,0,sizeof(dp)); for(i = 0;i<=len1;i++) mark[i][0] = 1; for(i = 0;i<=len2;i++) mark[0][i] = -1; for(i = 1; i<=len1; i++) { for(j = 1; j<=len2; j++) { if(s1[i-1]==s2[j-1]) { dp[i][j] = dp[i-1][j-1]+1; mark[i][j] = 0; } else if(dp[i-1][j]>=dp[i][j-1]) { dp[i][j] = dp[i-1][j]; mark[i][j] = 1; } else { dp[i][j] = dp[i][j-1]; mark[i][j] = -1; } } }}void PrintLCS(int i,int j){ if(!i && !j) return ; if(mark[i][j]==0) { PrintLCS(i-1,j-1); printf("%c",s1[i-1]); } else if(mark[i][j]==1)//根据回溯的位置进行输出 { PrintLCS(i-1,j); printf("%c",s1[i-1]); } else { PrintLCS(i,j-1); printf("%c",s2[j-1]); }}int main(){ while(~scanf("%s%s",s1,s2)) { len1 = strlen(s1); len2 = strlen(s2); LCS(); PrintLCS(len1,len2); printf("\n"); } return 0;}
0 0
- HDU 1503 Advanced Fruits (LCS升级版)
- HDU 1503 Advanced Fruits[ LCS ]
- hdu 1503 Advanced Fruits (LCS)
- HDU 1503--Advanced Fruits【LCS】
- HDU 1503 Advanced Fruits(LCS)
- HDU 1503 Advanced Fruits LCS -
- HDU 1503 Advanced Fruits【LCS】
- HDU-1503 Advanced Fruits(LCS)
- hdu 1503 Advanced Fruits DP LCS
- hdu 1503 Advanced Fruits(LCS)
- HDU 1503 Advanced Fruits (LCS,DP)
- hdu 1503 Advanced Fruits (LCS)
- HDU 1503 Advanced Fruits (LCS)
- hdu 1503 Advanced Fruits 打印LCS模板
- HDU 1503-Advanced Fruits(动态规划,LCS)
- HDU-1503 Advanced Fruits(DP LCS)
- HDOJ 1503 Advanced Fruits(LCS)
- hdoj-1503-Advanced Fruits【LCS】
- 黑马程序员----C语言复杂数据类型之数组(字符串)与指针篇
- 【C语言】翻转数组内容
- 字节对齐
- 如何远程访问并控制hmc
- iOS开发中,对进程和线程的理解
- HDU 1503 Advanced Fruits (LCS升级版)
- java设计模式之工厂模式
- Windows7,网络连接错误: 依赖服务或组无法启动
- HTML5_1 页面视频、音频播放
- Search for a Range
- Codeforces Round #163 (Div. 2)
- 【C语言】冒泡排序
- cocos2dx概要及开发技术------Cocos2d-x坐标系统
- 寻找poppopret的c代码