欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1678B1.Tokitsukaze and Good 01-String (easy version)
Tokitsukaze and Good 01-String (easy version)
题目描述
这是该问题的简单版本。两个版本的唯一区别在于,困难版本还要求最小化子段的数量。
Tokitsukaze 有一个长度为 的二进制字符串 ,只包含 和 ,且 是偶数。
现在,Tokitsukaze 将 划分为最少数量的连续子段,并且每个子段内的所有位都相同。之后,如果所有子段的长度都是偶数,则称 是好的。
例如,如果 为 "11001111",它会被划分为 "11"、"00" 和 "1111"。它们的长度分别为 、、,都是偶数,因此 "11001111" 是好的。再比如,如果 为 "1110011000",它会被划分为 "111"、"00"、"11" 和 "000",它们的长度分别为 、、、。显然,"1110011000" 不是好的。
Tokitsukaze 想通过修改 中某些位置的值,使 变成好的。具体来说,她可以进行任意次数的操作:将 的值改为 '0' 或 '1'()。你能告诉她最少需要多少次操作才能使 变成好的吗?
输入格式
第一行包含一个正整数 (),表示测试用例的数量。
对于每个测试用例,第一行包含一个整数 (),表示字符串 的长度,保证 是偶数。
第二行包含一个长度为 的二进制字符串 ,只包含 和 。
保证所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,输出一行一个整数,表示将 变成好的所需的最小操作次数。
说明/提示
在第一个测试用例中,将 、 和 改为 '0',此时 变为 "1100000000",可以划分为 "11" 和 "00000000",长度分别为 和 。还有其他操作 次使 变好的方法,例如 "1111110000"、"1100001100"、"1111001100"。
在第二、第三和第四个测试用例中, 一开始就是好的,因此不需要任何操作。
由 ChatGPT 4.1 翻译
样例
5
10
1110011000
8
11001111
2
00
2
11
6
100110
3
0
0
0
3
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |