320K 188MS GCC 778B 2009-02-15 21:37:37

之前想用背包(搜索)做,一直做不出来,不知道是不是考虑的不全面。(wa)

后来用搜索全部解来找最小值来做,出现time limited

无奈,只好去网上寻求帮助:看了一个人对这道题的做法的一句话:

用a[i]表示重量为i的最小价值,对于每一个价值为v[j],重量为w[j]的硬币,用a[i]+v[j]去刷新a[i+w[j]]。

也就是说用动态规划来做了。。O(硬币的总类数*包总重量)

在pku的discuss上还发现有O(硬币的总类数*硬币的总类数的做法),实在无法参透。。

哎,我太菜了。。。

现把我写的代码附上:

 

Code
posted on 2009-02-15 21:48  pandy  阅读(530)  评论(0编辑  收藏  举报