看到最优解把多重背包当成完全背包是,循环里写的是:
for(int j=w;j<=c;++j)
即从物品单个费用枚举到物品个数,显然不对。
正确应当是:
for(int j=w;j<=m;++j)
把物品个数改为总容量。 hack:
1 0 9 5 2 2
正确输出:
2
最优解错误输出:
0
建议添加hack