307262: CF1329D. Dreamoon Likes Strings

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Dreamoon Likes Strings

题意翻译

### 题目描述 Dreamoon 喜欢字符串。这天,他设计了一个关于字符串的游戏: 我们称一个字符串 $s_1, s_2, \ldots, s_n$ 是美丽的,当且仅当对于任意 $1 \le i \lt n$,$s_i \neq s_{i + 1}$。 初始时,Dreamoon 有一个字符串 $a$。在每一步内,Dreamoon 可以选择 $a$ 的一个美丽的子串,然后移除它,再将剩余的字符按照原来的顺序连接起来。 Dreamoon 希望用尽可能少的步数使得 $a$ 变成空串。请帮帮他,并给出任意一种使得步数最少的操作方案序列。 ### 输入格式 第一行输入一个整数 $t ~ (1 \le t \le 200\ 000)$,表示测试数据组数。 对于每组测试数据,输出一行一个非空的字符串 $a$。$a$ 中仅包含小写字母。 每组测试数据的字符串长度之和不超过 $200\ 000$。 ### 输出格式 对于每组测试数据,第一行输出一个整数 $m$,表示使得 $a$ 变成空串的最少步数。 接下来的 $m$ 行,每行输出两个整数 $l_i, r_i ~ (1 \le l_i \le r_i \le \lvert a \rvert)$,表示在第 $i$ 步中,移除了当前字符串中下标在 $l_i$ 到 $r_i$ 的这段子串(下标从 $1$ 开始)。 注意在删除一个子串后,剩余位置的下标可能发生改变。输出的 $r_i$ 不能超过当前字符串 $a$ 的长度。 如果有多个合法的方案,你可以输出任意一种。

题目描述

Dreamoon likes strings. Today he created a game about strings: String $ s_1, s_2, \ldots, s_n $ is beautiful if and only if for each $ 1 \le i < n, s_i \ne s_{i+1} $ . Initially, Dreamoon has a string $ a $ . In each step Dreamoon can choose a beautiful substring of $ a $ and remove it. Then he should concatenate the remaining characters (in the same order). Dreamoon wants to use the smallest number of steps to make $ a $ empty. Please help Dreamoon, and print any sequence of the smallest number of steps to make $ a $ empty.

输入输出格式

输入格式


The first line contains an integer $ t $ ( $ 1 \leq t \leq 200\,000 $ ), denoting the number of test cases in the input. For each test case, there's one line with a non-empty string of lowercase Latin letters $ a $ . The total sum of lengths of strings in all test cases is at most $ 200\,000 $ .

输出格式


For each test case, in the first line, you should print $ m $ : the smallest number of steps to make $ a $ empty. Each of the following $ m $ lines should contain two integers $ l_i, r_i $ ( $ 1 \leq l_i \leq r_i \leq |a| $ ), denoting, that the $ i $ -th step is removing the characters from index $ l_i $ to $ r_i $ in the current string. (indices are numbered starting from $ 1 $ ). Note that after the deletion of the substring, indices of remaining characters may change, and $ r_i $ should be at most the current length of $ a $ . If there are several possible solutions, you can print any.

输入输出样例

输入样例 #1

4
aabbcc
aaabbb
aaa
abacad

输出样例 #1

3
3 3
2 4
1 2
3
3 4
2 3
1 2
3
1 1
1 1
1 1
1
1 6

Input

题意翻译

### 题目描述 Dreamoon 喜欢字符串。这天,他设计了一个关于字符串的游戏: 我们称一个字符串 $s_1, s_2, \ldots, s_n$ 是美丽的,当且仅当对于任意 $1 \le i \lt n$,$s_i \neq s_{i + 1}$。 初始时,Dreamoon 有一个字符串 $a$。在每一步内,Dreamoon 可以选择 $a$ 的一个美丽的子串,然后移除它,再将剩余的字符按照原来的顺序连接起来。 Dreamoon 希望用尽可能少的步数使得 $a$ 变成空串。请帮帮他,并给出任意一种使得步数最少的操作方案序列。 ### 输入格式 第一行输入一个整数 $t ~ (1 \le t \le 200\ 000)$,表示测试数据组数。 对于每组测试数据,输出一行一个非空的字符串 $a$。$a$ 中仅包含小写字母。 每组测试数据的字符串长度之和不超过 $200\ 000$。 ### 输出格式 对于每组测试数据,第一行输出一个整数 $m$,表示使得 $a$ 变成空串的最少步数。 接下来的 $m$ 行,每行输出两个整数 $l_i, r_i ~ (1 \le l_i \le r_i \le \lvert a \rvert)$,表示在第 $i$ 步中,移除了当前字符串中下标在 $l_i$ 到 $r_i$ 的这段子串(下标从 $1$ 开始)。 注意在删除一个子串后,剩余位置的下标可能发生改变。输出的 $r_i$ 不能超过当前字符串 $a$ 的长度。 如果有多个合法的方案,你可以输出任意一种。

加入题单

算法标签: