#P6849. [THUWC2017] 大葱的神力

    ID: 5753 远端评测题 1000ms 128MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>动态规划,dp搜索2017提交答案Special Judge剪枝模拟退火背包费用流随机贪心,随机化

[THUWC2017] 大葱的神力

题目背景

本题为提交答案题。

大葱是我国自古以来的美食,像我国传统美食北京烤鸭,用鸭子点缀出大葱的香味,令人赞不绝口。民间也流传着有「每天一棵葱,不当单身狗」的说法。

然而,大葱要发挥出独属于自己的神力,也是有条件的。

题目描述

现在小葱同学有 NN 棵大葱和 MM 个抽屉,将第 ii 棵大葱放到第 jj 个抽屉里面会产生 wi,jw_{i,j} 的神力。自然小葱同学希望获得尽量多的神力,但是抽屉有着容积的限制,大葱也有着自己的体积。第 ii 棵大葱的体积为 aia_i,第 jj 个抽屉的容积为 bjb_j。一个抽屉里面装着的大葱的体积之和不能超过这个抽屉的容积,一棵大葱不能拆分放到两个抽屉中。

小葱同学现在想知道,在这样的条件下,这些大葱最多会产生多少的神力?

输入格式

本题为提交答案题,输入文件为 drawer1.in ~ drawer10.in,详见附加文件。

第一行两个整数 N,MN,M,代表大葱的个数和抽屉的个数。

接下来一行 NN 个整数,代表每棵大葱的体积。

接下来一行 MM 个整数,代表每个抽屉的容积。

接下来 NN 行每行 MM 个整数,第 ii 行第 jj 个数代表第 ii 棵大葱放到第 jj 个抽屉中会产生的神力。

输出格式

输出文件为 drawer1.out ~ drawer10.out,分别对应相应的输入文件。

对于每组输入数据,输出 NN 行每行一个整数,第 ii 个数代表第 ii 棵大葱被放到了哪个抽屉里面。如果第 ii 棵大葱没有被放到任何一个抽屉里面,则输出 00

3 4
1 1 2
2 1 2 3
1 2 1 1
2 1 2 1
3 1 0 1
2
0
1

提示

样例说明

样例只是一种合法情况,获得的总神力值为 2+3=52+3=5

评分方式

本题使用 Special Judge,对于每个测试点,我们都有 1010 个参数 a1,a2,,a10a_1,a_2,\cdots,a_{10},如果你的输出所产生的的神力 vv 满足 vaiv \ge a_i,则我们保证该测试点你至少会得到 ii 分。

如何测试你的输出

在附加文件中,我们提供了 scorer.cpp,请自行编译来测试输出,这个程序将用于评判你的输出能够产生多少的神力。

若编译后文件名称为 scorer,在终端(Linux)中,输入以下命令:

./scorer <input_name> <output_name>

或在命令提示符(Windows)中,输入以下命令:

scorer <input_name> <output_name>

来对你的输出进行评判。其中 <input_name> 为输入文件名称,<output_name> 为输出文件名称。