洛谷 P3817 【小A的糖果】

 

题目描述

小A有N个糖果盒,第i个盒中有a[i]颗糖果。

小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中加起来都只有x颗或以下的糖果,至少得吃掉几颗糖。

问题链接

https://www.luogu.org/problemnew/show/P3817

问题解答:

典型的贪心:
ans要开long long
为了使吃的最少,要改变两盒糖果中后面那盒

代码:

#include<bits/stdc++.h>
using namespace std; int main() { long long ans=0,N,x,i; cin>>N>>x; int a[N]; for(i=0;i<N;i++) cin>>a[i]; for(i=0;i<N-1;i++) { if(a[i]+a[i+1]>x) { ans+=a[i]+a[i+1]-x; a[i+1]=x-a[i]; } } cout<<ans<<endl; return 0; }

猜你喜欢

转载自www.cnblogs.com/yuntianming0215/p/xiaoAdetangguo.html