※ 引述《ddd23236 (James)》之铭言:
: 请问一下
: 不太懂这题为什么 the size of each object
: 一定要是整数
: 我的想法是实数还是可以比较大小,
: 只要取floor 再比较即可
: 变成
: c[ i-1, l_ k-w[ i ] _l + v [ i ] ]
: (抱歉打不出floor符号
: http://i.imgur.com/DlVHalJ.jpg
我认真的回一下这一篇,虽然我不知道这是不是出题者想要的答案。
首先要思考什么叫做输入是 arbitrary real number,
在 Turing machine 的模型下,就算有无限的内存,能够表示的也只
是 countable set,不可能表示 arbitrary real number,因为实数是
uncountable的。
所以我假设考官想要问的是,对于背包问题,当输入可以是实数的一个
可数子集时,dynamic programming 可不可以 *work*。
因为 DP 是基于 optimal substructure 的,也就是题解上列的递回式,
这递回式跟输入是不是整数没有关系,所以 DP 是可以找到最佳解的。
但是时间复杂度就不是O(nW),W 是背包大小,因为输入不是整数的关系。
所以是 work 还是不 work?