数列分段 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;
}