CF1416E.Split
NOI/NOI+/CTSC
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
One day, BThero decided to play around with arrays and came up with the following problem:
You are given an array a, which consists of n positive integers. The array is numerated 1 through n. You execute the following procedure exactly once:
- You create a new array b which consists of 2n positive integers, where for each 1≤i≤n the condition b2i−1+b2i=ai holds. For example, for the array a=[6,8,2] you can create b=[2,4,4,4,1,1].
- You merge consecutive equal numbers in b. For example, b=[2,4,4,4,1,1] becomes b=[2,4,1].
Find and print the minimum possible value of ∣b∣ (size of b) which can be achieved at the end of the procedure. It can be shown that under the given constraints there is at least one way to construct b.
有一天,BThero 决定玩弄数组,并提出了以下问题:
给你一个由 n 个正整数组成的数组 a,数组下标从 1 到 n。你恰好执行以下过程一次:
- 构造一个由 2n 个正整数组成的新数组 b,使得对每个 1≤i≤n,均满足 b2i−1+b2i=ai。例如,对于数组 a=[6,8,2],你可以构造出 b=[2,4,4,4,1,1]。
- 将 b 中所有连续相等的数字合并为一个数字。例如,b=[2,4,4,4,1,1] 将变为 b=[2,4,1]。
求并输出该过程结束后所能得到的 ∣b∣(即 b 的长度)的最小可能值。可以证明,在给定约束条件下,总存在至少一种方式来构造 b。
输入格式
The first line of the input file contains a single integer T (1≤T≤5⋅105) denoting the number of test cases. The description of T test cases follows.
The first line of each test contains a single integer n (1≤n≤5⋅105).
The second line contains n space-separated integers a1, a2, ..., an (2≤ai≤109).
It is guaranteed that ∑n over all test cases does not exceed 5⋅105.
输入文件的第一行包含一个整数 T(1≤T≤5⋅105),表示测试用例的数量。接下来是 T 个测试用例的描述。
每个测试用例的第一行包含一个整数 n(1≤n≤5⋅105)。
第二行包含 n 个以空格分隔的整数 a1, a2, ..., an(2≤ai≤109)。
保证所有测试用例的 n 之和不超过 5⋅105。
输出格式
For each test case, print a single line containing one integer — the minimum possible value of ∣b∣.
对于每个测试用例,输出一行,包含一个整数——∣b∣ 的最小可能值。
输入输出样例
输入#1
3 3 6 8 2 1 4 3 5 6 6
输出#1
3 1 2
输入解题思路,AI测评打分。不知道怎么写?