70分,3WA,求助

P3817 小A的糖果

@[linshangyun](/user/635711) ~~大哥,这是贪心。~~ 其实你可以这样想:题目中要求每两个盒子中的糖果总量<=m。比如:**i和i+1,i+1和i+2**……黑体字的地方你会看出i不能和i+2个盒子中的总量去比,但i+1可以和i一起比,也可以和i+2一起比,所以这题的贪点就在我们要在能同时在两个盒子中间的盒子吃糖(吃过的不要再吃)让后加上吃掉的糖果数。 ac代码: ``` #include<bits/stdc++.h> using namespace std; const int N=1e8+10; long long n,m,a[N],ans,sum; int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<=n;i++){ sum=a[i]+a[i+1];//i和i+1个盒子中糖果的总量 if(sum>m){ a[i+1]-=sum-m;//吃和i+2的盒子挨着的盒子中的糖 ans+=sum-m;//记录吃掉糖的总数 } } cout<<ans; } ```
by LoTLaneyyat @ 2024-01-23 20:43:41


AC了,感谢大佬
by linshangyun @ 2024-01-24 11:31:47


|