概述
#include<cstdio>
#include<cstring>
#include<string>
#include<string.h>
#include<cmath>
#include<algorithm>
#include<iostream>
#define ll long long
using namespace std;
int a[2010];
int n, d;
int main(){
scanf("%d%d", &n, &d);
for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
int ans = 0;
for(int i = 1; i <= n; i++){
if(a[i] <= a[i-1]){
int temp = (a[i-1] - a[i] + d) / d;
a[i] = a[i] + temp*d;
ans += temp;
}
}
cout << ans << endl;
return 0;
}
A sequence a0, a1, ..., at - 1 is called increasing if ai - 1 < ai for each i: 0 < i < t.
You are given a sequence b0, b1, ..., bn - 1 and a positive integer d. In each move you may choose one element of the given sequence and add d to it. What is the least number of moves required to make the given sequence increasing?
The first line of the input contains two integer numbers n and d (2 ≤ n ≤ 2000, 1 ≤ d ≤ 106). The second line contains space separated sequence b0, b1, ..., bn - 1 (1 ≤ bi ≤ 106).
Output the minimal number of moves needed to make the sequence increasing.
Input
4 2 1 3 3 2
Output
3
最后
以上就是秀丽期待为你收集整理的CodeForces - 11A ---递增数列的全部内容,希望文章能够帮你解决CodeForces - 11A ---递增数列所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复