CF1951E.No Palindromes

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Christopher Tin ft. Soweto Gospel Choir - Baba Yetu

ඞ

给定一个由小写拉丁字母组成的字符串 ss。你需要将该字符串划分为若干个子串,使得每个子串都不是回文串。

†^\dagger 一个字符串 ss 的划分是一个有序的 kk 个字符串 t1,t2,…,tkt_1, t_2, \ldots, t_k 的序列,满足 t1+t2+…+tk=st_1 + t_2 + \ldots + t_k = s,其中 ++ 表示连接操作。

‡^\ddagger 如果一个字符串 ss 从前往后读和从后往前读都相同,则称其为回文串。例如,racecar\mathtt{racecar}、abccba\mathtt{abccba} 和 a\mathtt{a} 都是回文串,而 ab\mathtt{ab}、dokibird\mathtt{dokibird} 和 kurosanji\mathtt{kurosanji} 不是回文串。

输入格式

每组测试包含多个测试用例。第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例包含一个由小写拉丁字母组成的字符串 ss(1≤∣s∣≤1061 \le |s| \le 10^6)。

保证所有测试用例中字符串长度之和不超过 10610^6。

输出格式

对于每个测试用例,如果存在一种划分方式使得每个部分都不是回文串,输出一行 "YES";否则输出 "NO"。

如果答案为 "YES",则在第二行输出一个整数 kk,表示将 ss 划分为 kk 个部分,每个部分都不是回文串。在第三行输出 kk 个字符串 t1,t2,…,tkt_1, t_2, \ldots, t_k,表示一种满足条件的划分方式。如果有多种划分方式,输出任意一种即可。

输入输出样例

  • 输入#1

    3
    sinktheyacht
    lllllllll
    uwuowouwu

    输出#1

    YES
    1
    sinktheyacht
    NO
    YES
    3
    uw uow ouwu

说明/提示

在第一个测试用例中,sinktheyacht\mathtt{sinktheyacht} 本身就不是回文串,因此划分为 [sinktheyacht][\mathtt{sinktheyacht}] 是合法的。

在第二个测试用例中,字符串 ss 的任意子串都是回文串,因此不存在合法的划分方式。

在第三个测试用例中,另一种合法的划分方式是 [uw,uo,wou,wu][\mathtt{uw},\mathtt{uo}, \mathtt{wou}, \mathtt{wu}]。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页