最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

信息学奥赛题库- 石环

C++ 少儿编程 1280浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

【题目描述】

桌子上有 $n$ 个石头围成一个环。每个石头都有一种颜色。每种颜色可以用不同的小写英文字母表示,所以总共有$26$种颜色。不同的石头可能有相同的颜色。如果每一对相邻的石头都是不同颜色的,则称这$n$个石头构成的环是美丽的。两个石头是相邻的充要条件是这两个石头中间没有其他石头。例如:$1$号和 $2$号是相邻的,$2$号和$3$号是相邻的,…,$n$号和$1$号是相邻的。现在,你可以从这 $n$ 个石头中拿走一段连续的石头(可以为空),且你只能拿一次。你的任务是对于每个$k(0≤k≤n-1)$,判断是否存在一种取石头的方案,使得在拿走$k$个连续的石头后,剩下的$n-k$个石头构成的环是美丽的。

【输入】

输入包含多组测试数据,以$EOF$结束。

每组数据有一行字符串$s$,字符串第$i$位表示桌上第$i$个石头的颜色。设字符串$s$的长度为$n$,则$1≤n≤10^6$。字符串只包含小写英文字母。

【输出】

对于每组数据,按照样例的格式输出数据编号和一个长度为$n$的字符串。如果存在一种取石头的方案,使得在拿走$k$个连续的石头后,剩下的$n-k$个石头构成的环是美丽的,则字符串的第$k$位(由$0$开始编号)为$1$,否则为$0$。

【输入样例】

rrg
rrrrr
brbg
abab

【输出样例】

Case 1: 011
Case 2: 00001
Case 3: 1111
Case 4: 1011

【提示】

【数据规模】

对于所有数据,数据组数不超过 $6$ 组,$1≤n≤10^6$。

测试点编号 $n$ 特殊限制
$1$ $≤1000$
$2$
$3$ $≤10^5$ 输入的$n$个石子中,任意两个相邻的石子颜色不同。
$4$
$5$
$6$
$7$
$8$
$9$
$10$
$11$ $≤10^6$ 输入的$n$个石子中,任意两个相邻的石子颜色不同。
$12$
$13$
$14$
$15$
$16$
$17$
$18$
$19$
$20$

您必须 登录 才能发表评论!