CF1971D.Binary Cut

普及-

通过率:0%

AC君温馨提醒

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

题目描述

给定一个二进制字符串 $ ^{\dagger} $ 。请找到您需要将其切割成的最小片段数,将生成的片段重新排列成有序的二进制字符串。

请注意:

  • 每个字符必须恰好位于其中一个片段中;
  • 这些片段必须是原始字符串的连续子字符串;
  • 你必须在重排中使用所有的片段。

†^{\dagger}二进制字符串是由字符 $ \texttt{0}$ 和 1\texttt{1} 组成的字符串。排序后的二进制字符串是一个二进制字符串,使得所有字符 0\texttt{0} 位于所有字符 1\texttt{1} 之前。

输入格式

第一行包含一个整数 tt(1≤t≤5001\leq t\leq 500)——测试用例的数量。

每个测试用例的唯一一行包含一个由 0\texttt{0} 和 1\texttt1 组成的字符串 ss (1≤∣s∣≤5001 \leq |s| \leq 500),其中 ∣s∣|s| 表示字符串 ss 的长度。

输出格式

对于每个测试用例,输出将字符串重新排列为有序二进制字符串所需的最小分割数量。

输入输出样例

  • 输入#1

    6
    11010
    00000000
    1
    10
    0001111
    0110

    输出#1

    3
    1
    1
    2
    1
    2

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

首页