#P15459. 【MX-X25-T3】『FeOI-5』qjyxfgms

【MX-X25-T3】『FeOI-5』qjyxfgms

背景

“qjyxfgms” 很可能是中文拼音的首字母缩写,常见的解释是:“请假一下发给秘书”。

题目描述

给出长度为 nn 的 01 序列 aa。

你可以对这个序列进行若干次操作。每次操作可以选择一个位置 i(1≤i≤n−2)i(1\le i\le n-2),并将 ai,ai+1,ai+2a_i,a_{i+1},a_{i+2} 赋值为 mex({ai,ai+1,ai+2})mex(\{a_i,a_{i+1},a_{i+2}\})。

你需要求出,使得所有位置都变成 0 的最小操作次数。

其中 mex(S)mex(S) 表示集合 SS 中最小未出现过的自然数。

输入格式

本题包含多组测试数据。

第一行,一个正整数 TT,表示测试数据组数。对于每组测试数据:

  • 第一行,一个正整数 nn。
  • 第二行,nn 个整数 a1,…,ana_1, \ldots, a_n,其中 ai∈{0,1}a_i\in\{0,1\}。

输出格式

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

2
6
1 1 0 1 0 1
4
1 1 1 1

3
3

提示

【样例解释 #1】

对于第一组测试数据:

  • 第 11 次操作选择位置 33,其中 mex({a3,a4,a5})=mex({0,1,0})=2mex(\{a_3,a_4,a_5\})=mex(\{0,1,0\})=2,序列变为 [1,1,2,2,2,1][1,1,2,2,2,1];
  • 第 22 次操作选择位置 11,其中 mex({a1,a2,a3})=mex({1,1,2})=0mex(\{a_1,a_2,a_3\})=mex(\{1,1,2\})=0,序列变为 [0,0,0,2,2,1][0,0,0,2,2,1];
  • 第 33 次操作选择位置 44,其中 mex({a4,a5,a6})=mex({2,2,1})=0mex(\{a_4,a_5,a_6\})=mex(\{2,2,1\})=0,序列变为 [0,0,0,0,0,0][0,0,0,0,0,0];

总共使用 33 次操作使得所有位置都变成 0。可以证明不存在次数更少的操作方案。

【数据范围】

本题采用捆绑测试。

对于所有测试数据,保证:

  • 1≤T≤1061\le T\le 10^6;
  • 3≤n,∑n≤1063\le n,\sum n\le 10^6;
  • ai∈{0,1}a_i\in\{0,1\}。

::cute-table{tuack}

子任务编号 n≤n\le 特殊性质 分数
11 1515 无 21
22 10210^2 A 18
33 10310^3 B 24
44 10610^6 C 17
55 无 20

特殊性质 A:∑n3≤3×107\sum n^3\le 3\times 10^7;

特殊性质 B:∑n2≤3×107\sum n^2\le 3\times 10^7;

特殊性质 C:保证满足 ai=0a_i=0 的位置 ii 数量不超过 1515;