2014牡丹江网络赛ZOJPretty Poem(暴力枚举)

简介:

/*
       将给定的一个字符串分解成ABABA 或者 ABABCAB的形式!
        思路:暴力枚举A, B, C串!
 */
#include<iostream>
#include<cstring>
#include<cstdio>
#include<string>

using namespace std;
string str;
char ch[55];
int main(){
    int t;
    scanf("%d", &t);
    getchar();
    while(t--){
        char cc;
        int cnt=0;
        scanf("%c", &cc);
        
        while(cc!='\n'){
            if((cc>='A' && cc<='Z' || cc>='a' && cc<='z'))
                ch[cnt++]=cc;
            scanf("%c", &cc);
        } 
        ch[cnt]='\0';
        str=string(ch);
        int len=strlen(ch);
        bool flag=false;
        for(int i=1; i<len/2; ++i){
            string A=str.substr(0, i);
            for(int j=1; j<len/2; ++j){
                if(i+j>len/2) break; 
                string B=str.substr(0+i, j);
                if(A==B) continue; 
                int ll=i;
                int k=i+j, x;
        
                for(x=0; x<ll && k<len; ++k, ++x)
                    if(A[x] != ch[k])
                       break;
                if(x==ll){
                    k=i+j+i;
                    ll=j;
                    for(x=0; x<ll && k<len; ++k, ++x)
                          if(B[x] != ch[k])
                           break;
                    if(x==ll){
                        
                        ll=i;
                        k=i+j+i+j;
                        for(x=0; x<ll && k<len; ++k, ++x)
                            if(A[x] != ch[k])
                              break;
                        if(x==ll && k==len)
                           flag=true;
                        if(!flag){
                            k=i+j+i+j;
                            ll=j;
                            int m=len-1;
                            for(x=ll-1; x>=0 && m>k; --m, --x)
                                if(B[x] != ch[m])
                                    break;
                            if(x==-1){
                                ll=i;
                                for(x=ll-1; x>=0 && m>k; --m, --x)
                                    if(A[x] != ch[m])
                                        break;
                                if(x==-1){
                                   string C=str.substr(k, m-k+1);
                                   if(A!=C && B!=C)    
                                      flag=true;
                                }
                            }  
                        }
                    }
                }
            }
        }
        if(flag) printf("Yes\n");
        else printf("No\n");
    } 
    return 0;
}

目录
相关文章
|
算法 Android开发 索引
LeetCode 周赛上分之旅 #44 同余前缀和问题与经典倍增 LCA 算法
学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场 LeetCode 周赛的解题报告,一起体会上分之旅。
80 0
|
5月前
【洛谷 P1002】[NOIP2002 普及组] 过河卒 题解(递归+记忆化搜索)
`NOIP2002`普及组的过河卒问题是一个棋盘路径计数挑战。卒从$(0,0)$出发到$(n,m)$,只能向下或向右移动,马在$(c1,c2)$固定,控制某些点。任务是计算不受马阻挡的路径数。输入是目标和马的位置,输出是路径总数。使用动态规划和记忆化搜索避免重复计算,样例输入$(6,6,3,3)$输出$6$。代码中定义了$f(x,y)$计算$(x,y)$处的路径数,利用边界条件和递推关系计算。
57 0
|
5月前
|
C++
【洛谷 P1047】[NOIP2005 普及组] 校门外的树 题解(位集合)
**NOIP2005普及组问题:**给定长度为$l$的马路,上面等距种植着树,需移除位于建造地铁区域的树。输入包含马路长度和区域数,以及各区域起止点,输出移树后剩余树的数量。样例输入:$l=500$, $m=3$,输出:$298$。$20\%$数据无区域重合,$1 \leq l \leq 10^4$,$1 \leq m \leq 100$。解决方案利用位集合(bitset)表示树的状态,遍历区域将树设为0,最后统计1的数量。AC代码使用C++实现。
26 0
|
算法 Java 测试技术
LeetCode 周赛上分之旅 #46 经典二分答案与质因数分解
学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场 LeetCode 周赛的解题报告,一起体会上分之旅。
63 0
LeetCode 周赛上分之旅 #46 经典二分答案与质因数分解
|
算法 Android开发 Kotlin
LeetCode 周赛上分之旅 #42 当 LeetCode 考树上倍增,出题的趋势在变化吗
学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场 LeetCode 周赛的解题报告,一起体会上分之旅。
111 0
LeetCode 周赛上分之旅 #42 当 LeetCode 考树上倍增,出题的趋势在变化吗
|
算法
【过河卒】回溯算法保姆式解题
【过河卒】回溯算法保姆式解题
90 0
|
人工智能 算法 测试技术
LeetCode 双周赛 103(2023/04/29)区间求和的树状数组经典应用
这场周赛是 LeetCode 双周赛第 103 场,难得在五一假期第一天打周赛的人数也没有少太多。这场比赛前 3 题比较简单,我们把篇幅留给最后一题。
79 0
|
算法
算法简单题,吾辈重拳出击 - 动态规划之爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
|
算法
【递归与递推】洛谷[NOIP2002 普及组] 过河卒
前言 本题来自洛谷P1002. 题目链接:[NOIP2002 普及组] 过河卒 - 洛谷
212 0
|
算法 Java
【算法攻坚】两道简单题目
【算法攻坚】两道简单题目
115 0
【算法攻坚】两道简单题目