奥赛一本通 1428 数列分段
1428 数列分段
题目大意
将一个正整数序列分成连续的几段,每段的总和都不超过给定值 $m$,求最少分为几段。
知识要点
贪心
解题思路
让一段里包含的数尽可能多。
参考代码
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, m, x, ans = 1, sum = 0;
scanf("%d%d", &n, &m);
while(n--) {
scanf("%d", &x);
if((sum += x) > m) sum = x, ans++;
}
printf("%d\n", ans);
return 0;
}

浙公网安备 33010602011771号