题目链接:这里
题意:你每次操作可以使得一个数增加d,问你最小操作多少次,可以使得这个序列变成一个递增序列
解法:直接贪心,能变就变。。。
//CF 11A
#include <bits/stdc++.h>
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;
}

本文介绍了一道经典贪心算法题目CF11A的解题思路及实现代码,通过直接贪心的方法调整序列使其变为递增序列,并计算所需的最小操作次数。
453

被折叠的 条评论
为什么被折叠?



