AT_abc459_f [ABC459F] -1, +1

题目描述

给定一个长度为 $N$ 的非负整数序列 $A = (A_1, A_2, \ldots, A_N)$。 你可以对 $A$ 执行以下操作零次或多次: - 选择一个满足 $1 \le i \le N-1$ 的整数 $i$,将 $A_i$ 减少 $1$,同时将 $A_{i+1}$ 增加 $1$。 请你求出,至少需要多少次操作,才能使 $A$ 变成严格递增的序列。 可以保证答案小于 $2^{63}$。 有 $T$ 组测试数据,请依次解决每组数据。

输入格式

输入从标准输入给出,格式如下: > $T$ > $\text{case}_1$ > $\text{case}_2$ > $\vdots$ > $\text{case}_T$ 第 $i$ 组($1 \le i \le T$)测试数据 $\text{case}_i$ 的格式如下: > $N\ A_1\ A_2\ \ldots\ A_N$

输出格式

请按顺序输出每组测试数据的答案,每个答案占一行。

说明/提示

### 样例解释 1 考虑第一组测试数据。 通过如下操作,可以用三次操作将 $A$ 变成严格递增的序列: - 选择 $i=1$,$A$ 变为 $(-1, 2, 0)$。 - 选择 $i=2$,$A$ 变为 $(-1, 1, 1)$。 - 选择 $i=2$,$A$ 变为 $(-1, 0, 2)$。 无法在更少的操作次数内使 $A$ 严格递增,因此输出 $3$。 ### 数据范围 - $1 \le T \le 3 \times 10^5$ - $1 \le N \le 2 \times 10^5$ - $0 \le A_i \le 10^9$ - 所有测试数据中 $N$ 的总和不超过 $6 \times 10^5$ - 所有输入值均为整数。 由 ChatGPT 5 翻译