题意:有n个团队的人在等车,一个团队的人必须同时坐一辆车,否则等下一辆。已知每个团队的人数a[i],每辆车的载客量m(不包括司机),问至少需要几辆车。

思路:定义变量sum。for(i=1~n) 。 如果sum+a[i] > m , 那么sum=a[i] , ans++。

数据分析:1 ≤ n, m ≤ 100 1 ≤ ai[i]≤ m 没什么好担心的

复杂度分析:O(n)

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[300];
int ans=0;
int main(void)
{
    int n,m;
    cin >> n >> m;
    for(int i=1;i<=n;i++)
        scanf("%d",&a[i]);
    int i=1;
    int sum=0;
    for(int i=1;i<=n;i++)
    {
        sum+=a[i];
        if(sum>m)
        {
            ans++;
            sum=a[i];
        }
    }
    if(sum) ans++;
    cout << ans << endl;
}