其他分享
首页 > 其他分享> > Codeforces Global Round 13 C. Pekora and Trampoline

Codeforces Global Round 13 C. Pekora and Trampoline

作者:互联网

1491C - Pekora and Trampoline

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=5010;
int s[N];
LL cnt[N];
void solve()
{
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        cnt[i]=0;
        scanf("%lld",&s[i]);
    }
    LL ans=0;
    for(int i=1;i<=n;i++)
    {
        if(s[i]-cnt[i]>1)//要从i这个位置跳
        {
            ans+=s[i]-1-cnt[i];//把i位置上的数减成1
            cnt[i]=s[i]-1;//把i这个位置从s[i]变成了1 自然走了s[i]-1步
        }
        for(int j=i+2;j<=min( n,i+s[i]);j++)cnt[j]++;
        cnt[i+1]+=cnt[i]-(s[i]-1);//如果之前已走比s[i]-1大 把次数累积给下一个
    }
    printf("%lld\n",ans);
}
int main()
{
    int tests=1;
    scanf("%d",&tests);
  // cin>>tests;
    //while(~scanf("%d",&n))
    while(tests--)
    {
        solve();
    }
     return 0;
}
View Code

 

标签:13,Trampoline,Pekora,int,LL,Global,cnt,long,tests
来源: https://www.cnblogs.com/liv-vil/p/14463188.html