当只有一个属性时,我能理解其中的内容。但是当有多个属性时,我对背包问题的理解存在问题。
我需要编写一个使用背包算法的程序,其中有两个属性。老师告诉我们,必须在三维数组中完成。我无法想象这样的数组会是什么样子。
假设这是我的输入:
4 3 4 // number of records below, 1st property of backpack, 2nd property of backpack
1 1 1 // 1st property, 2nd property, cost
1 2 2 // 1st property, 2nd property, cost
2 3 3 // 1st property, 2nd property, cost
3 4 5 // 1st property, 2nd property, cost
"并且输出将会看起来像这样:"
4 // the cheapest sum of costs of 2 records
1 3 // numbers of these 2 records
输出解释: 2组记录适合输入的第1行:
(1) - 第1条记录和第3条记录
1 1 1
+ 2 3 3
-------
3 4 4
(2) - 记录编号 4
3 4 5
因为第一组记录是最便宜的(4 < 5),所以我们选择了它。我不仅需要找出这样的记录集是否存在,还需要找到我已经加总的记录。
但现在,我只需要了解三维数组的外观。有人能帮我做到这一点,并且逐层显示,就像我的图片一样,它会是什么样子?
谢谢。