首页 > 代码库 > HDU 5311 Hidden String (优美的暴力)

HDU 5311 Hidden String (优美的暴力)


Hidden String

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)

Total Submission(s): 52    Accepted Submission(s): 25



Problem Description
Today is the 1st anniversary of BestCoder. Soda, the contest manager, gets a string of length . He wants to find three nonoverlapping substrings ,, that:

1.

2. The concatenation of ,, is "anniversary".
 
Input
There are multiple test cases. The first line of input contains an integer, indicating the number of test cases. For each test case:
There‘s a line containing a string consisting of lowercase English letters.
 
Output
For each test case, output "YES" (without the quotes) if Soda can find such thress substrings, otherwise output "NO" (without the quotes).
 
Sample Input
2 annivddfdersewwefary nniversarya
 
Sample Output
YES NO
 
Source
BestCoder 1st Anniversary ($)
 
题目链接:http://acm.hdu.edu.cn/showproblem.php?

pid=5311

题目大意:问在一个字符串里能不能找到连续三个区间拼成anniversary

题目分析:暴力,枚举每段的长度

#include <cstdio>
#include <cstring>
char s[200], con[] = "anniversary";

int main()
{
    int T;
    scanf("%d", &T);
    while(T--)
    {
        scanf("%s", s);
        int len = strlen(s);
        bool flag = false;
        for(int i = 0; i <= 8; i++)
        {
            for(int j = i + 1; j <= 9; j++)
            {
                int k = 0;
                while(k < len && strncmp(con, s + k, i + 1) != 0)
                    k ++;
                if(k == len) 
                    break;
                k += i + 1;
                while(k < len && strncmp(con + i + 1, s + k, j - i) != 0)
                    k ++;
                if(k == len) 
                    break;
                k += j - i;
                while(k < len && strncmp(con + j + 1, s + k, 10 - j) != 0)
                    k ++;
                if(k != len)
                {
                    flag = true;
                    break;
                }
            }
        }
        if(flag) 
            puts("YES");
        else 
            puts("NO");
    }
}




HDU 5311 Hidden String (优美的暴力)