#CF1416E. 分拆与合并

分拆与合并

分拆与合并

  • 时间限制:5 秒
  • 内存限制:256 MiB

题目描述

给定一个由 nn 个正整数组成的数组 aa。对每个 1≤i≤n1\le i\le n,把 aia_i 拆成两个正整数 b2i−1,b2ib_{2i-1},b_{2i},满足

b2i−1+b2i=ai.b_{2i-1}+b_{2i}=a_i.

然后,把 bb 中每一段连续相等的数合并成一个数。请最小化合并后数组的长度。

输入格式

第一行一个整数 TT,表示测试数据组数。

每组数据第一行一个整数 nn,第二行 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。

输出格式

对每组数据输出一行一个整数,表示合并后数组长度的最小值。

样例输入 1

3
3
6 8 2
1
4
3
5 6 6

样例输出 1

3
1
2

数据范围

对所有数据,1≤T≤5×1051\le T\le5\times10^5,1≤n≤5×1051\le n\le5\times10^5,2≤ai≤1092\le a_i\le10^9,且单个输入文件中 ∑n≤5×105\sum n\le5\times10^5。

子任务编号 分值 特殊限制
1 20 n≤7n\le7,ai≤10a_i\le10,且 ∑n≤28\sum n\le28
2 40 n≤200n\le200,ai≤200a_i\le200,且 ∑n≤600\sum n\le600
3 无特殊限制

题目来源:Codeforces 1416E。