说明
给出长度为 n 的 01 序列 a。
你可以对这个序列进行若干次操作。每次操作可以选择一个位置 i(1≤i≤n−2),并将 ai,ai+1,ai+2 赋值为 mex({ai,ai+1,ai+2})。
你需要求出,使得所有位置都变成 0 的最小操作次数。
其中 mex(S) 表示集合 S 中最小未出现过的自然数。
输入格式
本题包含多组测试数据。
第一行,一个正整数 T,表示测试数据组数。对于每组测试数据:
- 第一行,一个正整数 n。
- 第二行,n 个整数 a1,…,an,其中 ai∈{0,1}。
输出格式
对于每组测试数据,输出一行,一个非负整数,表示答案。
2
6
1 1 0 1 0 1
4
1 1 1 1
3
3
提示
【样例解释 #1】
对于第一组测试数据:
- 第 1 次操作选择位置 3,其中 mex({a3,a4,a5})=mex({0,1,0})=2,序列变为 [1,1,2,2,2,1];
- 第 2 次操作选择位置 1,其中 mex({a1,a2,a3})=mex({1,1,2})=0,序列变为 [0,0,0,2,2,1];
- 第 3 次操作选择位置 4,其中 mex({a4,a5,a6})=mex({2,2,1})=0,序列变为 [0,0,0,0,0,0];
总共使用 3 次操作使得所有位置都变成 0。可以证明不存在次数更少的操作方案。
【数据范围】
本题采用捆绑测试。
对于所有测试数据,保证:
- 1≤T≤106;
- 3≤n,∑n≤106;
- ai∈{0,1}。
::cute-table{tuack}
| 子任务编号 |
n≤ |
特殊性质 |
分数 |
| 1 |
15 |
无 |
21 |
| 2 |
102 |
A |
18 |
| 3 |
103 |
B |
24 |
| 4 |
106 |
C |
17 |
| 5 |
无 |
20 |
特殊性质 A:∑n3≤3×107;
特殊性质 B:∑n2≤3×107;
特殊性质 C:保证满足 ai=0 的位置 i 数量不超过 15;