给出一个序列,和一个数d,每次可以把某个位置的数增加d,问如果将这个序列变成严格单调递增,最少需要操作多少次
需要注意相等的情况,另外加完之后想等的也要考虑
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{
int n,d,x[2005];
scanf("%d%d",&n,&d);
for(int i=0;i<n;++i)
{
scanf("%d",&x[i]);
}
int ans=0;
for(int i=1;i<n;++i)
{
if(x[i]<x[i-1])
{
int num=ceil((x[i-1]-x[i])*1.0/d);
ans+=num;
x[i]+=num*d;
}
if(x[i]==x[i-1])
{
x[i]+=d;
++ans;
}
}
printf("%d\n",ans);
return 0;
}