HDU1501(dfs)

来源:互联网 发布:淘宝森系口碑好的店铺 编辑:程序博客网 时间:2024/05/29 18:02
#include<iostream>#include<cstdio>#include<cstring>#define maxn 205using namespace std;int len1,len2,len3;int vis[maxn][maxn];char str1[maxn],str2[maxn],str3[maxn*2];bool dfs(int cur1, int cur2, int cur3){    if(cur3>=len3)    {        return true;    }    if(vis[cur1][cur2])    return false;    vis[cur1][cur2]=1;    if(str1[cur1]==str3[cur3]&&dfs(cur1+1,cur2,cur3+1))    return true;    if(str2[cur2]==str3[cur3]&&dfs(cur1,cur2+1,cur3+1))    return true;    return false;}int main(){    int N;    while(~scanf("%d",&N))    {        int cou=0;        while(N--)        {            memset(vis, 0, sizeof(vis));            scanf("%s%s%s",str1,str2,str3);            len1=strlen(str1),len2=strlen(str2),len3=strlen(str3);           if(len1+len2!=len3)            {                printf("Data set %d: no\n",++cou);                continue;            }            if(dfs(0,0,0))                printf("Data set %d: yes\n",++cou);            else                printf("Data set %d: no\n",++cou);        }    }    return 0;}
0 0
原创粉丝点击