A16852 | Lost Civilization (Easy Version)
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
这是本题的简单版本。不同版本的区别在于,在本题中你只需要为一个序列计算一个值。只有在你解决了所有版本的问题后,你才能对其进行 hack。
我们定义一种生成包含 $m+k$ 个整数的算法如下:
1. 首先,输入一个长度为 $m$ 的整数序列 $x$。如果 $k=0$,则直接终止并返回序列 $x$。
2. 然后,选择任意一个下标 $1 \le i \le |x|$,并在元素 $x_i$ 之后插入一个数 $(x_i+1)$。
3. 如果 $x$ 的长度恰好等于 $m+k$,则终止并返回序列 $x$。否则,返回第二步继续操作。
Alice 知道古代文明曾经使用这个算法来安全地隐藏他们的秘密。Alice 想要了解他们所隐藏的知识,但要从算法的输出反推输入并不容易。
给定一个长度为 $n$ 的整数序列 $a$,请你求出通过上述算法可能生成 $a$ 的最短初始序列的长度。
我们定义一种生成包含 $m+k$ 个整数的算法如下:
1. 首先,输入一个长度为 $m$ 的整数序列 $x$。如果 $k=0$,则直接终止并返回序列 $x$。
2. 然后,选择任意一个下标 $1 \le i \le |x|$,并在元素 $x_i$ 之后插入一个数 $(x_i+1)$。
3. 如果 $x$ 的长度恰好等于 $m+k$,则终止并返回序列 $x$。否则,返回第二步继续操作。
Alice 知道古代文明曾经使用这个算法来安全地隐藏他们的秘密。Alice 想要了解他们所隐藏的知识,但要从算法的输出反推输入并不容易。
给定一个长度为 $n$ 的整数序列 $a$,请你求出通过上述算法可能生成 $a$ 的最短初始序列的长度。
输入格式
每个测试点包含多个测试用例。第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
每个测试用例第一行包含一个整数 $n$($1 \le n \le 300\,000$)。
第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le 10^9$)。
保证所有测试用例中 $n$ 的总和不超过 $300\,000$。
每个测试用例第一行包含一个整数 $n$($1 \le n \le 300\,000$)。
第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le 10^9$)。
保证所有测试用例中 $n$ 的总和不超过 $300\,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]$ 可以通过如下过程生成序列 $a=[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$ 本身。
由 ChatGPT 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$ 本身。
由 ChatGPT 5 翻译
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?