CF1965C.Folding Strip
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
你有一条长度为 n 的纸带,上面写有一个二进制字符串 s。你可以在任意一对相邻数字之间对纸带进行折叠。
一组折叠被认为是合法的,当且仅当所有被折叠在一起的字符都相同。注意,所有折叠是同时进行的,因此在折叠之间的字符不需要匹配。
例如,下面是 s=110110110011 和 s=01110 的一些合法折叠方式:

折叠后的纸带长度是所有折叠完成后,从上方看到的纸带长度。因此,对于上面两个例子,折叠后纸带的长度分别为 7 和 3。
注意,对于 s=01110 的上述折叠方式,如果只进行其中任意一个折叠,这都不是合法的折叠方式。然而,因为只有在所有折叠都完成后才检查合法性,所以这种折叠是合法的。
在进行一组合法折叠后,你能得到的纸带的最小长度是多少?
输入格式
输入的第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 n(1≤n≤2⋅105),表示纸带的长度。
每个测试用例的第二行包含一个由 n 个字符 '0' 和 '1' 组成的字符串 s,表示纸带上的数字。
保证所有测试用例中 n 的总和不超过 2⋅105。
输出格式
对于每个测试用例,输出一个整数,表示经过一组合法折叠后纸带可能的最小长度。
输入输出样例
输入#1
6 6 101101 1 0 12 110110110011 5 01110 4 1111 2 01
输出#1
3 1 3 3 1 2
说明/提示
对于第一个示例,最优的折叠方式是将纸带从中间折叠,得到长度为 3 的纸带。
第三个和第四个示例对应上方的图片。注意,对于 s=110110110011 的折叠方式并不是最小长度的折叠方式。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?