CodeForces - 11A Increasing Sequence
4959 단어 codeforces수제
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.
[샘플 입력] 4, 2, 1, 3, 2.
[샘플 출력] 3
제목 링크:https://codeforces.com/contest/11/problem/A
원래의 수열에서, 몇몇 숫자에 d를 몇 번 더해서 점차적으로 증가시키고, 최소 횟수를 구한다
코드는 다음과 같습니다.
#include
using namespace std;
static const int MAXN=2000+10;
int a[MAXN];
int n,d;
int main()
{
cin>>n>>d;
for(int i=0;i<n;i++) cin>>a[i];
int cnt=0;
for(int i=1;i<n;i++)
{
if(a[i]>a[i-1]) continue;
int t=(a[i-1]+d-a[i])/d;
cnt+=t;
a[i]+=d*t;
}
cout<<cnt<<endl;
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Codeforces Round #715 Div. 2C The Sports Festival: 구간 DP전형구간 DP의 초전형. 이하, 0-indexed. 입력을 정렬하여 어디서나 시작하고 최적으로 좌우로 계속 유지하면 좋다는 것을 알 수 있습니다. {2000})$의 주문이 된다. 우선, 입력을 소트하여 n개의 요소를 $...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.