查看原帖
749277
yvanshenfankuairen楼主2024/10/20 09:56

2.分块

题目描述

给你 n 个非负整数,把它们按顺序分成 m 块,每块长度都是 floor(n/m),(即 n/m 向下取整),这意味着可能会忽略后面多余的一些数。 现在你要从每块中选取一个最大值。并且所有选取的 m 个数的和大于 k。请你找出最小的分块数 m.

输入输出格式

输入格式:

输入包含多组测试数据。 每组测试数据: 第一行包含两个数字 n 和 k,表示 n 个数和限制 k 。 第二行包含 n 个数字 a1,a2,...an。 读到两个 -1 直接结束,不需要进行额外处理。

输出格式:

对于每组测试数据,输出一行表示最小的分块数 m,如果找不到则输出 -1。

输入输出样例

输入样例#1:

11 300 7 100 7 101 100 100 9 100 100 110 110 -1 -1

输出样例#1:

3

补充说明

【数据范围】

对于 40% 的数据, n<=100,k<=1000。 对于 100% 的数据,n<=200000,k<=1e9 ,0<=ai<=1000,数据组数<=10。

时间限制:1s 空间限制:512M

玄关

2024/10/20 09:56
加载中...