CF2062A.String

入门

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个长度为 nn 的由 0\mathtt{0} 和/或 1\mathtt{1} 组成的字符串 ss。每次操作中,你可以从 ss 中选择一个非空子序列 tt,要求 tt 中任意两个相邻字符不同。然后翻转 tt 中的每个字符(0\mathtt{0} 变为 1\mathtt{1},1\mathtt{1} 变为 0\mathtt{0})。例如,若 s=0‾0101‾s=\mathtt{\underline{0}0\underline{101}} 且 t=s1s3s4s5=0101t=s_1s_3s_4s_5=\mathtt{0101},操作后 ss 将变为 1‾0010‾\mathtt{\underline{1}0\underline{010}}。

请计算将 ss 中所有字符变为 0\mathtt{0} 所需的最少操作次数。

注意:对于字符串 s=s1s2…sns = s_1s_2\ldots s_n,任何形如 t=si1si2…sikt=s_{i_1}s_{i_2}\ldots s_{i_k}(k≥1k \ge 1)且满足 1≤i1<i2<…<ik≤n1 \leq i_1 < i_2 < \ldots <i_k \leq n 的字符串都是 ss 的子序列。

输入格式

第一行输入包含一个整数 tt(1≤t≤1041 \leq t \leq 10^4)—— 测试用例数量。

每个测试用例仅包含一个字符串 ss(1≤∣s∣≤501 \le |s| \le 50),其中 ∣s∣|s| 表示字符串长度。

输出格式

对于每个测试用例,输出将字符串 ss 中所有字符变为 0\mathtt{0} 所需的最少操作次数。

输入输出样例

  • 输入#1

    5
    1
    000
    1001
    10101
    01100101011101

    输出#1

    1
    0
    2
    3
    8

说明/提示

第一个测试用例中,你可以翻转 s1s_1。此时 ss 变为 0\mathtt{0},因此答案为 11。

第四个测试用例中,可以按以下顺序执行三次操作:

  1. 翻转 s1s2s3s4s5s_1s_2s_3s_4s_5,此时 ss 变为 01010‾\mathtt{\underline{01010}}。
  2. 翻转 s2s3s4s_2s_3s_4,此时 ss 变为 0010‾0\mathtt{0\underline{010}0}。
  3. 翻转 s3s_3,此时 ss 变为 000‾00\mathtt{00\underline{0}00}。

可以证明无法在少于三次操作内将 ss 全部变为 0\mathtt{0},因此答案为 33。

翻译由 DeepSeek R1 完成

输入解题思路,AI测评打分。不知道怎么写?

首页