zoukankan      html  css  js  c++  java
  • hdu 1501 Zipper

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=1501

    思路:题目要求第三个串由前两个组成,且顺序不能够打乱,搜索大法好

     1 #include<cstdio>  
     2 #include<iostream>  
     3 #include<algorithm>
     4 #include<math.h> 
     5 #include<string.h>  
     6 #include<vector> 
     7 #include<queue>
     8 #include<iterator>
     9 #include<vector>
    10 #include<set>
    11 #define dinf 0x3f3f3f3f
    12 typedef long long ll;
    13 
    14 using namespace std;
    15 
    16 char str1[1005],str2[1005],str3[1005];
    17 int flag,visit[1005][1005];
    18 
    19 void dfs(int i,int j,int k)
    20 {
    21     if(str1[i]==0 && str2[j]==0 && str3[k]==0)
    22     {
    23         flag=1;
    24         return;
    25     }
    26     if(str1[i]!=str2[j] && str1[i]!=str3[k])
    27         return;
    28     if(visit[i][j])
    29         return;
    30     visit[i][j]=1;
    31     if(str1[i]==str2[j])
    32         dfs(i+1,j+1,k);
    33     if(flag)
    34         return;
    35     if(str1[i]==str3[k])
    36         dfs(i+1,j,k+1);    
    37 }
    38 
    39 int main()
    40 {
    41     int t;
    42     scanf("%d",&t);
    43     for(int i=1;i<=t;i++)
    44     {
    45         scanf("%s  %s %s",str2,str3,str1);
    46         memset(visit,0,sizeof(visit));
    47         flag=0;
    48         dfs(0,0,0);
    49         printf("Data set %d: ",i);
    50         if(flag)
    51             printf("yes
    ");
    52         else
    53             printf("no
    "); 
    54     }
    55     return 0;
    56 }
  • 相关阅读:
    非空约束
    leetcode208
    leetcode207
    leetcode395
    leetcode116
    leetcode105
    leetcode131
    leetcode73
    leetcode200
    leetcode17
  • 原文地址:https://www.cnblogs.com/pter/p/5749308.html
Copyright © 2011-2022 走看看