给定子集{1,2,3,.... N}。我必须找到从1到N的所有整数的集合可以划分为两个总和相等的子集的方式数量。

什么都没想到。我想尝试“蛮力搜索”,但可能会造成时间限制。有没有快速的算法?

最佳答案

它可以在多项式时间内计算为k从1到n的乘积(1 + x ^ k)的x ^(n(n + 1)/ 4)系数。有几种评估产品的方法;一项乘以一项就足够了。

关于c++ - 集{1,2,3,…N}的分区,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28971124/

10-10 13:08