原题翻译
翻译我已经在上篇翻译过了,详情
题目大意
有 n n n个小团体需要乘坐小船,第 i i i个团体有 a i a_i ai个人,而小船只有 k k k个座位。同时,小团体需要按照给出的顺序来乘坐小船,且同一个团体中的人必须乘坐同一艘小船,问,需要多少只小船,才能满足所有的小团体。
思路
模拟即可,每次检查当前小船是否还能放下当前的团体人数,如果够,就加入当前小船中,如果不够,开一艘新的小船,用于放置当前的小团体。
代码
int n, k;
int a[N];
void solve() {
// 竞赛程序
cin >> n >> k;
for(int i = 1; i <= n; i++)
cin>>a[i];
int cnt = 0, sum = 0;
for(int i = 1; i <= n; i++) {
sum += a[i];
if(sum > k)
sum = a[i], cnt++;
}
if(sum > 0)
cnt++;
cout << cnt << endl;
}
挺快乐的因为今天心爱的学校开放日投了JL了^ W ^