HDU 5311 Hidden String (优美的暴力)
Posted mthoutai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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".
1.
2. The concatenation of ,, is "anniversary".
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.
There‘s a line containing a string consisting of lowercase English letters.
For each test case, output "YES" (without the quotes) if Soda can find such thress substrings, otherwise output "NO" (without the quotes).
2 annivddfdersewwefary nniversarya
YES NO
题目链接: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 (优美的暴力)的主要内容,如果未能解决你的问题,请参考以下文章
hdu 2594 Simpsons’ Hidden Talents
HDU 2594 - Simpsons’ Hidden Talents(KMP)
HDU 2594 Simpsons’ Hidden Talents