P13256 [GCJ 2014 #2] Data Packing

题目描述

Adam 是个非常有条理的人,他一直热衷于整理自己的各种物品。特别是,他至今仍清晰地记得年轻时花了许多小时将电脑中的文件刻录到光盘上的情景。 在这个过程中,有两个非常重要的规则。首先,为了确保每张光盘上的标签都清晰明了,Adam 从不在同一张光盘上存放超过两个文件。其次,他绝不会将一个文件拆分到多张光盘中。当然,幸运的是,他使用的光盘容量总是足够大,能满足这两个规则。 回想往事,Adam 不禁开始思考:当时自己整理文件的方式是否最优?是否可能在不违反规则的前提下使用更少的光盘?他现在会提供一张光盘的容量(所有光盘容量相同),以及他曾经存储的文件大小列表。请你帮助 Adam 计算,遵守上述两个重要规则的前提下,最少需要多少张光盘才能存储所有文件。

输入格式

输入的第一行是测试用例数量 $T$。接下来的 $T$ 个测试用例,每个测试用例的第一行包含两个整数:要存储的文件数 $N$,以及光盘容量 $X$(单位:MB)。下一行包含 $N$ 个用空格分隔的整数,表示每个文件的大小 $S_i$(单位:MB)。

输出格式

对于每个测试用例,输出一行,格式为 `"Case #x: y"`,其中 $x$ 是测试用例编号(从 1 开始),$y$ 是存储所有文件所需的最小光盘数。

说明/提示

## 限制条件 - $1 \leq T \leq 100$ - $1 \leq X \leq 700$ - $1 \leq S_i \leq X$ ### Small 数据集(5 分) - 时间限制:~~60~~ 3 秒。 - $1 \leq N \leq 10$ ### Large 数据集(8 分) - 时间限制:~~120~~ 5 秒。 - $1 \leq N \leq 10^4$ 翻译由 ChatGPT-4o 完成