数列分段

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;
}
posted @ 2019-10-28 18:25  fbz  阅读(196)  评论(0编辑  收藏  举报