题意:有m种物品,每个物品有ar[i]个,将其分予n人使得每人至少有一个,求分配方法种数。 容斥原理。运用容斥原理关键在于求得至多或至少然后去重。题目中有一个“至少”,不过显然不是我们要找的。不妨这样理解:每人至少有一个,也就是有0人没有被分到。那么我们可以找至少有x人没被分到,容斥一下便是0人没被分到的结果。考虑至少有x人没有被分到:C(n,x)选出x人,插板法将每种物品分给剩下的n-x人,每个人被分到的可以为零,乘法原理相乘即可:f(x)=C(n,x)* C(ar[i]+n-i-1,n-i-1)。所以答案即为f(0)-f(1)+f(2)-...+ * f(m-1)。 代码: #includ...