AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3415. 通过软盘拷贝文件

中等通过率 55% · 提交 1,075 · 通过 589
动态规划背包DP模拟数学DP

小慕正在整理一个旧项目中的文件,想尽可能多地把它们保存到一张软盘里。 但问题在于,这台旧电脑只有一个3.5寸软盘驱动器,没有其他方式可以导出文件,而且手头也只有这一张软盘可用。 因此,这张软盘是小慕唯一可以用来保存文件的载体。 小慕希望尽可能多地将项目中的文件复制到软盘中,使得软盘中文件的总大小最大。 已知这张软盘的容量是1474560字节。 文件在软盘上占用空间时,是按分配的,每个块的大小是512个字节。 一个块只能被一个文件使用。保存到软盘中的文件必须是完整的,不能使用任何压缩技术。

提示:带虚线的词点一下有通俗解释。

输入描述

<p> 第1行为一个整数N,表示计算机中的文件数量。1 ≤ N ≤ 1000. </p> <p> 接下来的第2行到第N+1行(共N行),每行为一个整数,表示每个文件的大小Si,单位为字节。 </p> <p> 0 ≤ i < N,0 ≤ Si <= 1474560 </p>

输出描述

<p> 科学家最多能拷贝的文件总大小。 </p> <p> 注意为了充分利用软盘空间,将每个文件在软盘上占用的块记录到本子上。即真正占用软盘空间的只有文件内容本身。 </p>

示例

示例 1

输入

6
400000
200000
200000
200000
400000
400000

输出

1400000

说明:从6个文件中,选择3个大小为400000的文件和1个大小为200000的文件,得到最大总大小为1400000。 也可以选择2个大小为400000的文件和3个大小为200000的文件,得到的总大小也是1400000

示例 2

输入

3
737270
737272
737288

输出

1474542

说明:3个文件中,每个文件实际占用的大小分别为737280字节、737280字节、737792字节。只能选取前两个文件,总大小为1474542字节。虽然后两个文件总大小更大且未超过1474560字节,但因为实际占用的大小超过了1474560字节,所以不能选后两个文件。

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
双机位C-通过软盘拷贝文件软盘容量:1474560字节(2880块)每个块大小:512字节文件必须完整拷贝,占用整数个块目标:最大化拷贝文件的总大小DP问题:0/1背包,容量为块数,价值为文件大小
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「通过软盘拷贝文件」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。