题目:https://codeforces.com/problemset/problem/1070/D
解题思路: 1.若前一天有垃圾剩余,则今天应至少处理一次 2.若前一天没有垃圾剩余。且今天的垃圾未填满垃圾袋,则可以暂不处理
代码:
#include #include #include using namespace std; typedef long long LL; int main() { int n,k,a,cut = 0; LL nl = 0; scanf("%d %d",&n,&k); for(int i = 0; i < n; i++){ scanf("%d",&a); if(cut){ cut += a; if(cut >= k) nl += cut / k,cut = cut % k; else cut = 0,nl++; } else{ cut += a; if(cut >= k) nl += (LL)(cut / k),cut = cut % k; } } if(cut) nl++; printf("%lld\n",nl); return 0; }