zoukankan      html  css  js  c++  java
  • 【HDOJ】1501 Zipper

    DFS。注意剪枝,0ms。

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 #define False 0
     5 #define True  1
     6 #define MAXN 201
     7 
     8 char stra[MAXN], strb[MAXN], strc[MAXN<<1];
     9 int len1, len2, len3;
    10 
    11 int dfs(int e1, int e2, int e3) {
    12     int i, flg = False;
    13 
    14     if (e1+e2+1 != e3) // 剩余长度必须相等
    15         return False;
    16 
    17     if (e3 == -1)
    18         return True;
    19 
    20     for (i=e1; i>=e3-e2-1; --i)  // 控制循环条件
    21         if (stra[i] == strc[e3]) {
    22             flg = dfs(i-1, e2, e3-1);
    23             break;
    24         }
    25 
    26     if (flg) return True;
    27 
    28     for (i=e2; i>=e3-e1-1; --i)  // 控制循环条件
    29         if (strb[i] == strc[e3]) {
    30             return dfs(e1, i-1, e3-1);
    31             break;
    32         }
    33 
    34     return False;
    35 }
    36 
    37 int main() {
    38     int case_n;
    39     int i;
    40 
    41     scanf("%d", &case_n);
    42 
    43     for (i=1; i<=case_n; ++i) {
    44         scanf("%s %s %s", stra, strb, strc);
    45         len1 = strlen(stra);
    46         len2 = strlen(strb);
    47         len3 = strlen(strc);
    48         printf("Data set %d: ", i);
    49         if (len3 != len1+len2)
    50             printf("no
    ");
    51         else {
    52             if ( dfs(len1-1, len2-1, len3-1) )
    53                 printf("yes
    ");
    54             else
    55                 printf("no
    ");
    56         }
    57     }
    58 
    59     return 0;
    60 }
  • 相关阅读:
    开始之旅9.18
    驱动学习
    Extjs TextField扩展
    数据结构经典算法java
    JAVA BeanUtil应用 一个类向另一个类转换
    Extjs timefield
    图片压缩成指定大小
    js正则表达式提取字符串中的数字
    STM32笔记记录2
    #ifdef,#else,#endif,#if用法详解
  • 原文地址:https://www.cnblogs.com/bombe1013/p/3769973.html
Copyright © 2011-2022 走看看