题意:有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;
}