ZJU 3818 - Pretty Poem

传送门

ZJU 3818 - Pretty Poem

题意

问能不能构造出ABABA或者ABABCBA

思路

暴力枚举ABC

代码

#include <bits/stdc++.h>
#define LL long long
#define lowbit(x) ((x) & (-x))
const int MAXN = 50 + 5;
const int INF = 0x3f3f3f3f;
using namespace std;
 
char temp[MAXN];
 
int main()
{
    //freopen("input.txt", "r", stdin);
    int T, i, j, n;
    scanf("%d%*c", &n);
    for (int ii = 0; ii < n; ii++)
    {
        string str;
        bool flag = false;
        char ch;
        scanf("%s", temp);
        for (i = 0; i < strlen(temp); i++)
            if (isalpha(temp[i])) str += temp[i];
        int len = str.size();
        for (i = 1; i * 2 < len; i++)
        {
            if (flag) break;
            for (j = 1; j * 2 + i * 3 <= len; j++)
            {
                string ab;
                int curLen = i * 3 + j * 2;
                string a = str.substr(0, i);
                string b = str.substr(i, j);
                if (a == b)
                    continue;
                if (curLen > len)
                    continue;
                else if (curLen == len)
                {
                    ab = a + b;
                    ab += ab;
                    string ans = ab + a;
                    if (ans == str)
                    {
                        flag = true;
                        break;
                    }
                }
                else
                {
                    ab = a + b;
                    ab += ab;
                    int k = 1;
                    while (k + ab.size() + a.size() + b.size() < len) k++;
                    string c = str.substr((i + j) * 2, k);
                    if (c == a || c == b)
                        continue;
                    string ans = ab + c + a + b;
                    if (ans == str)
                    {
                        flag = true;
                        break;
                    }
                }
            }
        }
        printf("%s\n", flag ? "Yes" : "No");
    }
    return 0;
}

Powered by Jekyll and Theme by solid