CF2121B.Above the Clouds

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Above the Clouds

题目描述

给定一个长度为 nn 的字符串 ss,该字符串仅由小写拉丁字母组成。请判断是否存在三个非空字符串 aabbcc,使得:

  • a+b+c=sa + b + c = s,即字符串 aabbcc 连接后的结果等于 ss
  • 字符串 bb 是字符串 a+ca + c 的子串,即 aacc 连接后的字符串包含 bb 作为子串。

^* 字符串 aabb 的连接定义为 a+b=a1a2apb1b2bqa + b = a_1a_2\ldots a_pb_1b_2\ldots b_q,其中 ppqq 分别为 aabb 的长度。例如,字符串 "code" 和 "forces" 的连接结果为 "codeforces"。

^\dagger 如果字符串 aa 可以通过从字符串 bb 的开头删除若干(可能为零或全部)字符,以及从结尾删除若干(可能为零或全部)字符得到,则称 aabb 的子串。

输入格式

每组测试数据包含多组测试用例。第一行包含一个整数 tt1t1041 \leq t \leq 10^4),表示测试用例的数量。接下来是每组测试用例的描述。

每组测试用例的第一行包含一个整数 nn3n1053 \leq n \leq 10^5),表示字符串 ss 的长度。

每组测试用例的第二行包含一个长度为 nn 的字符串 ss,仅包含小写拉丁字母。

保证所有测试用例中 nn 的总和不超过 2×1052 \times 10^5

输出格式

对于每组测试用例,如果存在满足条件的非空字符串 aabbcc,输出 "Yes";否则输出 "No"。

你可以以任意大小写输出答案。例如,"yEs"、"yes"、"Yes" 和 "YES" 都会被识别为肯定答案。

说明/提示

在第一个测试用例中,存在唯一的非空字符串 aabbcc,使得 a+b+c=sa + b + c = s。它们分别为 a=a = "a",b=b = "a",c=c = "a"。aacc 的连接结果为 a+c=a + c = "aa",bb 是该字符串的子串。

在第六个测试用例中,可以选择 a=a = "a",b=b = "ab",c=c = "b"。aacc 的连接结果为 a+c=a + c = "ab",bb 是该字符串的子串。

在第七个测试用例中,可以选择 a=a = "ab",b=b = "a",c=c = "ca"。aacc 的连接结果为 a+c=a + c = "abca",bb 是该字符串的子串。

由 ChatGPT 4.1 翻译

样例

12
3
aaa
3
aba
3
aab
4
abca
4
abba
4
aabb
5
abaca
5
abcda
5
abcba
6
abcbbf
6
abcdaa
3
abb
Yes
No
Yes
No
Yes
Yes
Yes
No
Yes
Yes
Yes
Yes

在线编程 IDE

建议全屏模式获得最佳体验