码迷,mamicode.com
首页 > 其他好文 > 详细

HDU1501 dfs

时间:2017-10-15 17:41:19      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:log   scanf   col   algorithm   turn   string   stream   记忆化   bool   

像这样有维度的一定要记忆化啊。。。。。。。。。。。

#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<memory.h>
#include<algorithm>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
char a[300],b[300],c[600];
int L1,L2,L3;
int vis[600][600];
bool _find(int pos,int s1,int s3)
{    
    if(pos==1&&a[s1]!=c[s3]) return false;
    if(pos==2&&b[s3-s1]!=c[s3]) return false;
    if(s3==L3) return true;
    if(s1+1<=L1&&!vis[s1+1][s3+1]&&_find(1,s1+1,s3+1))return true;   
    if(s3+1-s1<=L2&&!vis[s1][s3+1]&&_find(2,s1,s3+1)) return true;
    vis[s1][s3]=1;/*加这句就爆了,而且加在这里是表示无论是a到s3还是b到s3都搜索过了 */ 
    return false;
}
int main()
{
    int T,Case=0;
    scanf("%d",&T);
    while(T--){
        bool flag=false;
        memset(vis,0,sizeof(vis));
        printf("Data set %d: ",++Case);
        scanf("%s%s%s",a+1,b+1,c+1);
        L1=strlen(a+1);L2=strlen(b+1);L3=strlen(c+1);
        if(a[1]==c[1]&&_find(1,1,1))
            flag=true;
        if(b[1]==c[1]&&_find(2,0,1))
            flag=true;
        if(flag) printf("yes\n");
        else printf("no\n");
    }
    return 0;
} 

 

HDU1501 dfs

标签:log   scanf   col   algorithm   turn   string   stream   记忆化   bool   

原文地址:http://www.cnblogs.com/hua-dong/p/7672436.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!