CF2027C Add Zeros
题目描述
给定一个初始包含 $n$ 个整数的数组 $a$。每次操作,你必须执行以下步骤:
- 选择一个位置 $i$,满足 $1 < i \le |a|$ 且 $a_i = |a| + 1 - i$,其中 $|a|$ 表示当前数组 $a$ 的长度。
- 在 $a$ 的末尾追加 $i-1$ 个零。
你可以进行任意多次这样的操作。请问,经过若干次操作后,数组 $a$ 的最大可能长度是多少?
输入格式
每组测试数据包含多组测试用例。第一行包含一个整数 $t$($1 \le t \le 1000$),表示测试用例的数量。
每个测试用例的第一行包含一个整数 $n$($1 \le n \le 3 \cdot 10^5$),表示数组 $a$ 的长度。
第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le 10^{12}$)。
保证所有测试用例中 $n$ 的总和不超过 $3 \cdot 10^5$。
输出格式
对于每个测试用例,输出一个整数,表示经过若干次操作后数组 $a$ 的最大可能长度。
说明/提示
在第一个测试用例中,我们可以先选择 $i = 4$,因为 $a_4 = 5 + 1 - 4 = 2$。此时数组变为 $[2, 4, 6, 2, 5, 0, 0, 0]$。接着可以选择 $i = 3$,因为 $a_3 = 8 + 1 - 3 = 6$。此时数组变为 $[2, 4, 6, 2, 5, 0, 0, 0, 0, 0]$,长度为 $10$。可以证明,没有其他操作序列能使最终数组更长。
在第二个测试用例中,可以依次选择 $i=2$,然后 $i=3$,再然后 $i=4$。最终数组为 $[5, 4, 4, 5, 1, 0, 0, 0, 0, 0, 0]$,长度为 $11$。
由 ChatGPT 4.1 翻译