CF1491C Pekora and Trampoline 翻译

原题链接 洛谷链接

n n n 个蹦床排成一列,每个蹦床有一个弹力值 s i s_i si

每一轮的最开始,Pekora 会选择一个蹦床作为她的起点(任意一个蹦床都可以作为起点)。当她在蹦床 i i i 时,她会跳到蹦床 i + s i i+s_i i+si 上,并且 s i s_i si 会变为 m a x ( 1 , s i − 1 ) max(1,s_i-1) max(1,si1)(也就是说,蹦床每被跳一次弹力值就会减一,直到弹力值为 1 1 1)。当她跳到了第 n n n 个蹦床的后面时,该轮结束。

现在,Pekora 想要把所有的 s i s_i si 都变成 1 1 1,问最少要多少轮才能实现这个目标

输入格式

本题有多组数据

第一行一个整数 T T T,表示数据的组数
对于每组数据:
第一行一个整数 n n n,表示蹦床的个数
第二行 n n n 个整数,分别为 s 1 … n s_{1\dots n} s1n

输出格式

T T T 行,每行一个整数表示该组数据的答案

说明与提示

1 ≤ T ≤ 500 1 \le T \le 500 1T500
∑ n ≤ 5000 \sum n \le 5000 n5000
1 ≤ s i ≤ 1 0 9 1 \le s_i \le 10^9 1si109

你可能感兴趣的:(翻译,#Codeforces)