AT_tupc2024_e 010-11 Shorten
题目描述
给定一个长度为 $N$ 的只包含 `0` 和 `1` 的字符串 $S$。
你可以反复对字符串 $S$ 进行以下两种操作:
- 操作 1:选择 $S$ 中的某个连续子串 `010`,并将其替换为 `1`。
- 操作 2:选择 $S$ 中的某个连续子串 `11`,并将其替换为 `1`。
请你求出最多可以进行多少次这样的操作。
给定 $T$ 组测试用例,请分别求解每组的答案。
输入格式
输入以如下格式通过标准输入给出:
> $T$ $\text{case}_1$ $\text{case}_2$ $\vdots$ $\text{case}_T$
每组测试用例格式如下:
> $N$ $S$
输出格式
请输出 $T$ 行。对于 $i=1,2,\dots,T$,第 $i$ 行输出第 $i$ 个测试用例的答案(一个整数)。
说明/提示
### 样例解释 1
对于第 $1$ 个测试用例,例如可以进行如下 $3$ 次操作:
- 对 `010100` 的第 $3$ 到 $5$ 个字符 `010` 进行操作 1,变为 `0110`。
- 对 `0110` 的第 $2$ 到 $3$ 个字符 `11` 进行操作 2,变为 `010`。
- 对 `010` 的第 $1$ 到 $3$ 个字符 `010` 进行操作 1,变为 `1`。
对于 `010100`,无法再进行超过 $3$ 次操作,因此答案为 $3$。
### 数据范围
- $1 \leq T \leq 10^5$
- $1 \leq N \leq 10^6$
- $S$ 是长度为 $N$ 的只包含 `0` 和 `1` 的字符串
- 所有测试用例中 $N$ 的总和不超过 $10^6$
- $T, N$ 均为整数
由 ChatGPT 5 翻译