CFCF2201A1.Lost Civilization (Easy Version)

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

这是本题的简单版本。不同版本的区别在于,在本题中你只需要为一个序列计算一个值。只有在你解决了所有版本的问题后,你才能对其进行 hack。

我们定义一种生成包含 m+km+k 个整数的算法如下:

  1. 首先,输入一个长度为 mm 的整数序列 xx。如果 k=0k=0,则直接终止并返回序列 xx
  2. 然后,选择任意一个下标 1ix1 \le i \le |x|,并在元素 xix_i 之后插入一个数 (xi+1)(x_i+1)
  3. 如果 xx 的长度恰好等于 m+km+k,则终止并返回序列 xx。否则,返回第二步继续操作。

Alice 知道古代文明曾经使用这个算法来安全地隐藏他们的秘密。Alice 想要了解他们所隐藏的知识,但要从算法的输出反推输入并不容易。

给定一个长度为 nn 的整数序列 aa,请你求出通过上述算法可能生成 aa 的最短初始序列的长度。

输入格式

每个测试点包含多个测试用例。第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例第一行包含一个整数 nn1n3000001 \le n \le 300\,000)。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n1ai1091 \le a_i \le 10^9)。

保证所有测试用例中 nn 的总和不超过 300000300\,000

输出格式

对于每个测试用例,输出可能的最短初始序列的长度,每行一个答案。

输入输出样例

  • 输入#1

    5
    5
    1 2 3 4 5
    5
    1 3 5 7 9
    5
    1 2 5 6 5
    7
    1 2 4 5 3 7 8
    9
    9 8 9 2 3 4 4 5 3

    输出#1

    1
    5
    3
    4
    3

说明/提示

在第一个测试用例中,序列 [1][1] 可以通过如下过程生成序列 a=[1,2,3,4,5]a=[1,2,3,4,5]

[1][1,2][1,2,3][1,2,3,4][1,2,3,4,5][1] \to [1,\color{red}{2}] \to [1,2,\color{red}{3}] \to [1,2,3,\color{red}{4}] \to [1,2,3,4,\color{red}{5}]

在第二个测试用例中,唯一能生成 a=[1,3,5,7,9]a=[1,3,5,7,9] 的初始序列只能是 aa 本身。

由 ChatGPT 5 翻译

首页