0

我在网上看到的问题:一个卖瓜的农民有n个瓜。每个甜瓜的重量,一个整数 (lbs),是不同的。一位顾客要求正好 m 磅未切开的瓜。现在,农民有以下问题:如果有可能满足客户,他应该尽可能高效地找到合适的瓜,否则告诉客户不可能满足他的要求。

注意:这不是作业顺便说一句,我只需要指导。

我的回答:这似乎类似于硬币找零问题(背包)和子集问题(回溯)。硬币兑换:我可以将权重放入一个集合 w = {5, 8, 3 , 2,....} 然后求解,子集问题也是如此。

所以基本上我可以使用任何一种方法来解决这个问题?

4

1 回答 1

0

这正是一个整数背包问题,其中解决方案具有零浪费。有一个很好的动态编程/记忆策略可以帮助您解决它。请参阅以下任一链接:

http://www.cs.ship.edu/~tbriggs/dynamic/

https://en.wikipedia.org/wiki/Knapsack_problem

实际上,子集和问题是 0/1 背包问题,其中重量等于每个项目的价值。

于 2013-07-17T06:50:02.360 回答