https://loj.ac/problem/10006
题目描述
对于给定的一个长度为(N)的正整数数列,现要将其分成连续的若干段,并且每段和不超过(M),求最小分的段数。
思路
这题简单到没有任何技巧,扫一遍,超过(M)就统计答案。
代码
#include <bits/stdc++.h>
using namespace std;
int a[100100];
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
int s=0,ans=1;
for(int i=0;i<n;i++)
{
s+=a[i];
if(s>m)
{
s=a[i];
ans++;
}
}
printf("%d",ans);
return 0;
}