一道模拟题,其实直接模拟就出了,不过用一下除法来提升效率还是养成习惯的好。
贪心:遍历一次,每个当前数比自己前一个数大即可
C++:
#include <algorithm>
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int n,d,cnt=0;
scanf("%d%d",&n,&d);
int val[n];
for(int i=0;i<n;i++)
scanf("%d",&val[i]);
for(int i=1;i<n;i++)
{
if(val[i]>val[i-1])continue;
else
{
int temp=val[i-1]-val[i];
val[i]+=(temp/d+1)*d;
cnt+=(temp/d+1);
}
}
printf("%d",cnt);
return 0;
}