对于组合数的乘法和幂级数相乘幂次相加的结合。
其实本质上有点像多项式相乘。应该就是个卷积差不多。
我们构造一个G[x]称为母函数。然后可以解决组合问题。
准确来说:对于x种物品。构造(x ^ 0 + x ^ k)称为重量为k的物品取与不取.
那么对于k种物品的重量组合即为(x ^ 0,x ^ k1) * (x ^ 0 + x ^ k2) * (x ^ 0 + x ^ k3) * .... * (x ^ 0 + x ^ kn)。
合并同类项后,多项式为G[x] = t1 * x ^ 0 + t2 * x ^ 1 + t3 * x ^ 2 + ... tn * x ^ kn.
那么对于构成重量为Kn的方案数,即为tn。
这是每个物品只能取一次的情况。如果能取多次,我们则对每一项扩展,(x ^ 0 + x ^ 1 + x ^ 2 + x ^ 3...x ^ k)表示重量为1的物品最多取k次。
(x ^ 0 + x ^ 2 + x ^ 4 + ... x ^ k)。重量为2的物品最多取k / 2次(即项数)。
参考自:https://www.cnblogs.com/tonyyy/p/10440817.html