CF2062A.String
入门
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个长度为 n 的由 0 和/或 1 组成的字符串 s。每次操作中,你可以从 s 中选择一个非空子序列 t,要求 t 中任意两个相邻字符不同。然后翻转 t 中的每个字符(0 变为 1,1 变为 0)。例如,若 s=00101 且 t=s1s3s4s5=0101,操作后 s 将变为 10010。
请计算将 s 中所有字符变为 0 所需的最少操作次数。
注意:对于字符串 s=s1s2…sn,任何形如 t=si1si2…sik(k≥1)且满足 1≤i1<i2<…<ik≤n 的字符串都是 s 的子序列。
输入格式
第一行输入包含一个整数 t(1≤t≤104)—— 测试用例数量。
每个测试用例仅包含一个字符串 s(1≤∣s∣≤50),其中 ∣s∣ 表示字符串长度。
输出格式
对于每个测试用例,输出将字符串 s 中所有字符变为 0 所需的最少操作次数。
输入输出样例
输入#1
5 1 000 1001 10101 01100101011101
输出#1
1 0 2 3 8
说明/提示
第一个测试用例中,你可以翻转 s1。此时 s 变为 0,因此答案为 1。
第四个测试用例中,可以按以下顺序执行三次操作:
- 翻转 s1s2s3s4s5,此时 s 变为 01010。
- 翻转 s2s3s4,此时 s 变为 00100。
- 翻转 s3,此时 s 变为 00000。
可以证明无法在少于三次操作内将 s 全部变为 0,因此答案为 3。
翻译由 DeepSeek R1 完成
输入解题思路,AI测评打分。不知道怎么写?