#P0206. B. 翻转(flip)

B. 翻转(flip)

题目描述

给你一个长度为 NN 的、由 0011 构成的字符串 SS

你可以执行以下操作若干次:

  • 选择一个整数 1iN1\le i\le NSi1SiS_i\leftarrow 1-S_i

你的目标是让 SS 中的 11 连续或 SS 中不存在 11。请找出需要的最小的操作次数。

多组数据。

输入格式

多组数据。第一行一个整数 T(1T2×104)T(1\le T\le 2\times 10^4),表示数据组数。

对于每组数据:
第一行一个整数 N(1N2×105)N(1\le N\le 2\times 10^5)
第二行一个长为 NN 的字符串 SSSS0011 构成。

保证单个测试点中 N2×105\sum N\le 2\times 10^5

输出格式

对于每组数据,输出一行一个整数表示答案。

输入输出样例 #1

输入 #1

3
5
10011
10
1111111111
7
0000000

输出 #1

1
0
0

输入输出样例 #2

输入 #2

5
2
01
10
1000010011
12
111100010011
3
111
8
00010101

输出 #2

0
2
3
0
2

说明/提示

样例 1 解释

对于第一组数据,我们选择 i=1i=1 进行一次操作即可。

第二、三组数据不需要执行任何操作。

测试点 T(组数) 每组 N 范围 ∑N(总长度)
1 6 1 ~ 2 ≤ 10
2 3 ~ 9 ≤ 40
3 20 1 ~ 15 ≤ 300
4 6 5 ~ 15 ≤ 70
5 5 ~ 17 ≤ 100
6 ~40 50 ~ 200 ≈ 5000
7 80 ~ 300 ≈ 10000
8 ~10 1000 ~ 4000 ≈ 30000
9 4 30000 ~ 50000 ≈ 170000
10 40000 ~ 70000 = 200000