pku 2192 Zipper
2010-08-19 21:06
267 查看
题目链接:
http://acm.pku.edu.cn/JudgeOnline/problem?id=2192
采用动态规划的方法,类似LCS
f(i,j)表示是s1前i个字符,s2前j个字符能否组成s3前i + j个字符
f(0,0) = 0;
f(i,j) = (f(i - 1,j) && s1[i - 1] == s3[i + j - 1] && i >= 1) || f(i,j - 1) && s2[j - 1] == s3[i + j + 1] && j >= 1);
#include <iostream>
using namespace std;
char s1[202],s2[202],s3[406];
bool dp[202][202];
int main(){
int casenum;
//FILE *fp = fopen("data.txt","r");
//fscanf(fp,"%d",&casenum);
scanf("%d",&casenum);
int i,j,k;
int len1,len2;
for(k = 1;k <= casenum;k++){
//fscanf(fp,"%s%s%s",s1,s2,s3);
scanf("%s%s%s",s1,s2,s3);
memset(dp,0,sizeof(dp));
dp[0][0] = true;
len1 = strlen(s1);
len2 = strlen(s2);
for(i = 0;i <= len1;i++)
for(j = 0;j <= len2;j++)
if((dp[i - 1][j] && s1[i - 1] == s3[i + j - 1] && i >= 1) || (dp[i][j - 1] && s2[j - 1] == s3[i + j - 1] && j >= 1) == true)
dp[i][j] = true;
if(dp[len1][len2])
printf("Data set %d: yes/n",k);
else
printf("Data set %d: no/n",k);
}
return 0;
}
http://acm.pku.edu.cn/JudgeOnline/problem?id=2192
采用动态规划的方法,类似LCS
f(i,j)表示是s1前i个字符,s2前j个字符能否组成s3前i + j个字符
f(0,0) = 0;
f(i,j) = (f(i - 1,j) && s1[i - 1] == s3[i + j - 1] && i >= 1) || f(i,j - 1) && s2[j - 1] == s3[i + j + 1] && j >= 1);
#include <iostream>
using namespace std;
char s1[202],s2[202],s3[406];
bool dp[202][202];
int main(){
int casenum;
//FILE *fp = fopen("data.txt","r");
//fscanf(fp,"%d",&casenum);
scanf("%d",&casenum);
int i,j,k;
int len1,len2;
for(k = 1;k <= casenum;k++){
//fscanf(fp,"%s%s%s",s1,s2,s3);
scanf("%s%s%s",s1,s2,s3);
memset(dp,0,sizeof(dp));
dp[0][0] = true;
len1 = strlen(s1);
len2 = strlen(s2);
for(i = 0;i <= len1;i++)
for(j = 0;j <= len2;j++)
if((dp[i - 1][j] && s1[i - 1] == s3[i + j - 1] && i >= 1) || (dp[i][j - 1] && s2[j - 1] == s3[i + j - 1] && j >= 1) == true)
dp[i][j] = true;
if(dp[len1][len2])
printf("Data set %d: yes/n",k);
else
printf("Data set %d: no/n",k);
}
return 0;
}
相关文章推荐
- PKU 2192 Zipper
- pku2192---Zipper(动态规划题,随机组合两个字符串)
- PKU2192 Zipper(DP+记忆化)
- POJ 2192 Zipper
- HDU-1501 (POJ-2192) Zipper (DFS||DP)
- poj 2192 Zipper
- [简单DP] POJ 2192 Zipper
- 【算法刷题】poj 2192 Zipper
- hdu 1501 || poj 2192 Zipper(搜索:DFS)
- POJ 2192 && HDU 1501 Zipper (记忆化搜索)
- POJ-2192 Zipper-顺序合成串匹配
- POJ 2192 Zipper简单dp
- POJ 2192 / ZOJ 2401 : Zipper - DP
- poj 2192 Zipper(DFS+剪枝)
- POJ 2192 Zipper
- YTU 2896/POJ 2192 Zipper dfs
- pku2192(并查集+枚举)
- DFS poj 2192 zipper
- poj 2192 Zipper
- 【动态规划】POJ - 2192 Zipper