A. 二进制字符串

    传统题 1000ms 256MiB

二进制字符串

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

给定一个长度为 nn 的二进制字符串 ss(每个字符要么是 0 要么是 1),你可以选择一个位置 ii2in12\leq i\leq n-1),当满足:si1=si+1=1s_{i-1}=s_{i+1}=1,你可以将 sis_i 修改为 0011

你可以执行无限次上述操作,问字符串内 11 的总数的最小值和最大值分别可能是多少?

输入格式

本题有多组数据

第一行输入一个整数 tt,表示测试数据组数。每一组数据:

  • 第一行输入一个整数 nn 表示字符串的长度。
  • 第二行输入一个长度为 nn 的字符串 ss

输出格式

输出一共输出 tt 行,每行两个空格隔开的整数分别表示 11 的数量的最小值和最大值。

4
3
111
6
011011
7
1011101
9
100101101
2 3
3 5
4 7
5 7

提示

第一个测试用例中,最终字符串中 11 的最小数量是 22。操作过程是:

$$\mathtt{1}\underline{\mathtt{1}}\mathtt{1} \to \mathtt{101}. $$

最大数量是 3 3 ,不需要操作。

第二个测试用例中,最终字符串中 11 的最小数量是 33。操作过程是:

$$\mathtt{011}\underline{\mathtt{0}}\mathtt{11} \to \mathtt{01}\underline{\mathtt{1}}\mathtt{111} \to \mathtt{0101}\underline{\mathtt{1}}\mathtt{1} \to \mathtt{010101}. $$

最大数量是 55,操作过程是:

$$\mathtt{011}\underline{\mathtt{0}}\mathtt{11} \to \mathtt{011111}. $$

数据范围

对于 100%100\% 的数据满足:1t3001 \leq t \leq 3003n1003 \leq n \leq 100。字符串仅包含 01

  • 子任务 1(30 分):保证字符串中任意两个 1 之间的距离至少为 3(即不存在子串 11101)。
  • 子任务 2(30 分):保证输入字符串 ss 全由 1 组成。
  • 子任务 3(40 分):无特殊限制。

进阶算法周赛 - round02

未参加
状态
已结束
规则
IOI
题目
4
开始于
2026-3-22 18:30
结束于
2026-3-22 21:00
持续时间
2.5 小时
主持人
参赛人数
17