不大明白啥叫记忆化搜索,但是PC学长说就相当于打表~不大懂= =。。。回头好好看一下
题目链接
参考着崔老师的代码来的。
View Code
1 #include2 #include 3 4 char s1[205],s2[205],s3[410]; 5 int len,count,vis[205][205],leap; 6 void dfs(int a,int b,int c) 7 { 8 if(leap) 9 return;10 if(vis[a][b])11 return;12 vis[a][b] = 1;13 if(c >= len-1)14 {15 leap = 1;16 return;17 }18 if(s1[a] == s3[c])19 dfs(a+1,b,c+1);20 if(s2[b] == s3[c])21 dfs(a,b+1,c+1);22 }23 int main()24 {25 int T;26 count = 1;27 scanf("%d",&T);28 while(T--)29 {30 memset(s1,0,sizeof(s1));31 memset(s2,0,sizeof(s2));32 memset(s3,0,sizeof(s3));33 memset(vis,0,sizeof(vis));34 scanf("%s %s %s",s1,s2,s3);35 leap = 0;36 len = strlen(s3);37 dfs(0,0,0);38 39 if(leap)40 printf("Data set %d: yes\n",count);41 else42 printf("Data set %d: no\n",count);43 count++;44 }45 return 0;46 }