测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A2451. 数列分段 Section I

编程题 普及-
知识点

题目描述

对于给定的一个长度为 $N$ 的正整数数列 $A_i$,现要将其分成**连续**的若干段,并且每段和不超过 $M$(可以等于$M$),问最少能将其分成多少段使得满足要求。

输入格式

第1行包含两个正整数 $N,M$,表示了数列 $A_i$ 的长度与每段和的最大值,第 $2$ 行包含 $N$ 个空格隔开的非负整数 $A_i$,如题目所述。

输出格式

一个正整数,输出最少划分的段数。

输入输出样例

输入 #1
5 6
4 2 4 5 1
输出 #1
3

说明/提示

对于$20\%$的数据,有$N≤10$;

对于$40\%$的数据,有$N≤1000$;

对于$100\%$的数据,有$N≤100000,M≤10^9$,$M$大于所有数的最大值,$A_i$之和不超过$10^9$。


将数列如下划分:

$[4][2 4][5 1]$

第一段和为$4$,第$2$段和为$6$,第$3$段和为$6$均满足和不超过$M=6$,并可以证明$3$是最少划分的段数。
上一题 去做题 下一题