首页 > 其他 > 详细

the partition number

时间:2016-01-13 21:54:31      阅读:219      评论:0      收藏:0      [点我收藏+]

有一个容量为n的背包,有1, 2, 3, ..., n这n种物品,每种物品可以无限使用,求装满的方案数。

法一:

http://mathworld.wolfram.com/PartitionFunctionP.html:

Euler invented a generating function which gives rise to a recurrence equation in 技术分享,

技术分享

 

 

法二:

背包求解

大小 < sqrt(n) 的物品,只有sqrt(n)种,用普通的完全背包可以在O(n ** 1.5)的时间复杂度内解决。

大小 >= sqrt(n) 的物品,只会选sqrt(n)个,设k = sqrt(n), f[i][j]表示选了i个物品,和为j的方案

则f[i][j] = f[i-1][j-k] + f[i][j-i](第一种是加入了一个大小为k的物品,第二种是所有物品重量+1)

 

the partition number

原文:http://www.cnblogs.com/showson/p/5128541.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!