您的位置:首页 > 其它

hdu 1501 Zipper

2013-06-09 15:12 316 查看
题目链接:hdu1501

#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
char a[205],b[205],map[405];
int v[205][205],flag,len;
void dfs(int i,int j,int num)
{
if(num == len)
{
flag = 1;
return ;
}
if(flag || v[i][j]) return ;
v[i][j] = 1;
if(a[i] == map[num])
dfs(i + 1 , j , num + 1);
if(b[j] == map[num])
dfs(i , j + 1 , num + 1);
}
int main()
{
//freopen("in.txt","r",stdin);
int T,p = 1;
scanf("%d",&T);
while(T--)
{
scanf("%s%s%s",a,b,map);
memset(v,0,sizeof(v));
len = strlen(map);
flag = 0;
printf("Data set %d: ",p ++);
dfs(0,0,0);
if(flag) printf("yes\n");
else printf("no\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  DFS