标签:style os io ar for sp html on c
第一种情况:ABABA。 先判断开头的A与结尾的A,得到A的长度,接着判断ABAB 中的AB与AB是否相同(ABAB的长度一定为偶数)
已经知道了A长度,AB的长度 接着判断下A 与B是否相同
第二种情况:ABABCAB-可先讲AB看成整体即DDCD 若存在一个D满足条件 可得到C的长度和位置再判断A-B是否相同A-C是否相同 B-C是否相同(暴力取A的长度咯)
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <string> #include <iostream> #include <algorithm> #include <sstream> using namespace std; #include <queue> #include <stack> #include <vector> #include <deque> #include <set> #include <map> #define cler(arr, val) memset(arr, val, sizeof(arr)) #define IN freopen ("in.txt" , "r" , stdin); #define OUT freopen ("out.txt" , "w" , stdout); typedef long long LL; const int MAXN = 1000006;//点数的最大值 const int MAXM = 20006;//边数的最大值 const int INF = 11521204; const int mod=1000000007; char s[222]; char out[222]; bool jug(char c) { if(('a'<=c&&c<='z')||('A'<=c&&c<='Z')) return 1; else return 0; } int main() { int t; // IN; scanf("%d",&t); while(t--) { scanf("%s",s); int len=strlen(s),n=0; for(int i=0; i<len; i++) { if(jug(s[i])) { out[n++]=s[i]; } } out[n]=0; int flag=0; //第一种情况 ABABA for(int j=1; j<=(n-2)/3; j++) { int sum=0; for(int k=0; k<j; k++) { if(out[k]==out[n-j+k]) sum++; } if(sum==j&&(n-j)%2==0) { sum=0; int sum1=0,flag11=0; for(int k=0; k<(n-j)/2; k++) { if(out[k]==out[(n-j)/2+k]) sum++; } if(j==(n-j)/2-j) { for(int k=0; k<j; k++) { if(out[k]==out[k+j]) sum1++; } if(sum1==j) flag11=1; } if(sum==(n-j)/2&&flag11==0) flag=1; } } //第二种AABA for(int j=2; j<=(n-1)/3; j++) { int sum=0; for(int k=0; k<j; k++) { if(out[k]==out[n-j+k]&&out[k]==out[k+j]) sum++; } if(sum==j&&(n-3*j)>0) { int xx=n-3*j; for(int w=1; w<j; w++) { int sum1=0,sum2=0,flag11=0; sum=0; for(int k=0; k<w; k++) { if(out[k]==out[k+j-w]) sum++; } for(int k=0; k<xx&&k<w; k++) //判断a与c是否相同 { if(out[k]==out[j*2+k]) sum1++; } for(int k=2*j-1; k>=2*j-xx&&k>=j+w; k--) //判断b与c是否相同 { if(out[k]==out[k+xx]) sum2++; } if(sum==w&&sum==j-w) flag11=1; if(sum1==xx&&sum1==w) flag11=1; if(sum2==xx&&sum2==j-w) flag11=1; if(!flag11) flag=1; } } } if(flag==1) printf("Yes\n"); else printf("No\n"); } return 0; } /* 8 xyxyxxy xyxyyxy xxxxyxx xxxxx xyxyx xxxxxxxx xxxxxxxxxxxxx xyzzxyzxyzzxyzxyzxyzzxyz no no no no yes yes yes yes */
【瞎搞】ZOJ 3818 Pretty Poem 牡丹江网络赛J题
标签:style os io ar for sp html on c
原文地址:http://blog.csdn.net/kewowlo/article/details/39121405