Loj 2288 大葱的神力

提交答案题.

需要大力观察数据的特点.

测试点 1~2

$n,m$ 比较小,爆搜 + 最优化剪枝.

测试点 3

只有 $1$ 个抽屉,变成了 01 背包问题.

测试点 4~5

每个物品的体积是一样的,那么每个抽屉能容纳的物品数目是确定的,与放哪些物品无关.

建出费用流模型,从源点 $S$ 向每个物品连边,流量为 $1$ ,费用为 $0$ .

从每个物品 $i$ 向每个抽屉 $j$ 连边,流量为 $1$ ,费用为 $w_{ij}$ .

从每个抽屉向汇点 $T$ 连边,流量为它能容纳的物品数目,即 $\lfloor \frac b a\rfloor$ ,费用为 $0$ .

跑一遍最大费用最大流即可求出最优解,为了输出方案,只需在最后检查物品向抽屉连的边中,哪些边有流量.

测试点 6

每个物品的体积差别不大,通过验证发现每个抽屉能容纳的物品数目仍是确定的.

于是和上两个测试点做法相同.

测试点 7

只有第 $1$ 个物品的体积和其他物品的体积不同,枚举它放在哪个抽屉里面,对剩余的物品,像测试点 4~5 那样做.

测试点 8~10

数据没有什么特点,由于这个问题是 NPC 的,并没有什么高论.

可以尝试贪心,或者模拟退火搞一搞,得分各凭本事.