#ABC459F. 减一加一/-1+1

    ID: 18529 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 6 上传者: 标签>AtCoderABC459GreedyConstructive AlgorithmsPrefix Sum

减一加一/-1+1

题目描述

给定一个长度为 NN 的非负整数序列 A=(A1,A2,,AN)A=(A_1,A_2,\ldots,A_N)

你可以对 AA 执行任意次如下操作:

  • 选择一个整数 ii,满足 1iN11 \le i \le N-1
  • AiA_i 减少 11
  • Ai+1A_{i+1} 增加 11

求最少需要执行多少次操作,才能使 AA 成为一个严格递增序列。

可以证明答案小于 2632^{63}

本题有 TT 组测试数据,请对每组数据分别求解。

输入格式

第一行一个整数 TT,表示测试组数。

接下来依次给出每组测试数据。

每组测试数据的格式如下:

  • NN
  • A1A2ANA_1 A_2 \ldots A_N

输出格式

对于每组测试数据,输出一行一个整数,表示最少操作次数。

数据范围

  • 1<=T<=31051 <= T <= 3 * 10^5
  • 1<=N<=21051 <= N <= 2 * 10^5
  • 0<=Ai<=1090 <= A_i <= 10^9
  • 所有测试数据中的 NN 之和不超过 6×1056\times 10^5
  • 输入中的所有值均为整数
4
3
0 1 0
4
4 6 3 5
7
1 2 3 4 5 6 7
10
11 9 1 3 17 19 10 19 17 3
3
5
0
78

样例说明

考虑第一组数据。

可以按如下方式操作三次,使 AA 变为严格递增:

  1. 选择 i=1i=1,序列变为 (1,2,0)(-1, 2, 0)
  2. 选择 i=2i=2,序列变为 (1,1,1)(-1, 1, 1)
  3. 再次选择 i=2i=2,序列变为 (1,0,2)(-1, 0, 2)

可以证明少于 33 次操作无法做到,因此答案为 33

来源