#CF1107C. RemovevomeR 移除一些 R
RemovevomeR 移除一些 R
当前没有测试数据。
CF测试跳转:https://codeforces.com/contest/2241/problem/C
给定一个仅由字符 和 组成的二进制字符串 。
在一次操作中,你可以执行以下步骤:
- 选择 的一个子串,该子串是一个长度至少为 的回文串。
- 从该选定的子串中恰好删除一个字符。
字符串的剩余部分随后被拼接起来,形成新的字符串 。
找出经过任意次(可能为零次)操作后,字符串 可能达到的最小长度。
如果可以通过从字符串 的开头删除若干(可能为零或全部)字符,并从结尾删除若干(可能为零或全部)字符得到字符串 ,则称 是 的子串。
如果一个长度为 的字符串 满足对于所有 都有 ,则称该字符串为回文串。
输入
第一行包含一个整数 ()——测试用例的数量。每个测试用例的描述如下。
每个测试用例的第一行包含一个整数 ()——二进制字符串 的长度。
每个测试用例的第二行包含一个长度为 的二进制字符串 。保证 中的每个字符都是 或 。
输出
对于每个测试用例,输出经过任意次操作后字符串 可能达到的最小长度。
Example
4
4
0000
3
110
6
110011
6
101100
1
2
1
1
注意
在第一个测试用例中,初始字符串为 。我们可以执行以下操作序列:
- 选择回文子串 。删除一个 。字符串变为 。
- 选择回文子串 。删除一个 。字符串变为 。
- 选择回文子串 。删除一个 。字符串变为 。
字符串 不包含长度至少为 的回文子串,因此无法进行进一步操作。最小可能长度为 。
在第二个测试用例中,初始字符串为 。
- 选择回文子串 。删除一个 。字符串变为 。
字符串 不包含长度至少为 的回文子串,因此无法进行进一步操作。最小可能长度为 。