1. 程式人生 > >HDU 5311 Hidden String (優美的暴力)

HDU 5311 Hidden String (優美的暴力)

concat eight contest let family coder total tput sub


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 (優美的暴力)