HDU 1503 Advanced Fruits (LCS,DP)
来源:互联网 发布:淘宝优化排名 编辑:程序博客网 时间:2024/05/21 14:51
题意:给你两字符串s1,s2,用最短的字符串表示他们(公共字串输出一次)。
Sample Input
apple peachananas bananapear peach
Sample Output
appleachbananaspearch
dp[i][j] : 第一个字符串的前 i 个 ,和第二个字符串的前 j 个最短组合的长度 。
pre[i][j] : 第一个字符串的第 i 个 ,和第二个字符串的第 j 个字符的状态。
#include<cstdio>#include<stdlib.h>#include<string.h>#include<string>#include<map>#include<cmath>#include<iostream>#include <queue>#include <stack>#include<algorithm>#include<set>using namespace std;#define INF 1e8#define eps 1e-8#define LL long long #define N 105#define mod 1000000007 char a[N],b[N],str[N]; int c[N][N],pre[N][N],m,n; void lcs(char *a,char *b,int c[][N]) { int i,j; for(i=0;i<=m;i++) c[i][0]=i,pre[i][0]=3; for(j=0;j<=n;j++) c[0][j]=j,pre[0][j]=1; for(i=1;i<=m;i++) { for(j=1;j<=n;j++) { if(a[i-1]==b[j-1]) c[i][j]=c[i-1][j-1]+1,pre[i][j]=2; //表示pre[i][j]由a[i-1]或b[i-1]而来else if(c[i-1][j]>=c[i][j-1]) c[i][j]=c[i][j-1]+1,pre[i][j]=1; //pre[i][j]由b[j-1]而来else c[i][j]=c[i-1][j]+1,pre[i][j]=3; //pre[i][j]由a[i-1]而来} } } void out(int i,int j){if(i==0&&j==0) return;if(pre[i][j]==2){out(i-1,j-1);printf("%c",a[i-1]);}else if(pre[i][j]==3){out(i-1,j);printf("%c",a[i-1]);}else {out(i,j-1);printf("%c",b[j-1]);}}int main() { while(~scanf("%s%s",a,b)) { m=strlen(a);n=strlen(b);lcs(a,b,c);out(m,n);printf("\n");} return 0; }
0 0
- HDU 1503 Advanced Fruits (LCS,DP)
- HDU-1503 Advanced Fruits(DP LCS)
- hdu 1503 Advanced Fruits DP 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 LCS -
- HDU 1503 Advanced Fruits【LCS】
- HDU-1503 Advanced Fruits(LCS)
- 【DP|LCS+输出路径】HDU-1503 Advanced Fruits
- HDU 1503 Advanced Fruits(LCS+输出路径)
- LCS和输出 hdu 1503(Advanced Fruits)
- HDU:1503 Advanced Fruits(LCS+标记路径+输出)
- HDU 1503 Advanced Fruits (LCS最长公共子序列)
- 解决"Windows系统自带共享代理软件导致的断网问题"
- C#基础 之 params、ref、out
- leetcode Search in Rotated Sorted Array
- 【Orz5】 2014.08.09集训总结
- jdbcutil
- HDU 1503 Advanced Fruits (LCS,DP)
- POJ 1006 生理周期
- spring分布式事务
- Linux Shell编程入门
- 【第一遍机房收费系统】——Grid++Report5.0怎么做报表
- C语言基础知识
- UVA 10986 Sending email(SPFA)
- hdu 3507Print Article
- 怎么判断CString的类型是否为空