devu专题

CF451E: Devu and Flowers(容斥原理 + 考虑反面 + golang组合模版)

题目截图 题目翻译 题目分析 正难则反,考虑所有不符合的例子 由于n很小,所以可以状态压缩二进制遍历完全部不符合例子的组合 对于不符合的例子,假设其中第i个不符合,那么就消耗掉fi + 1个球 以此类推,减剩下s2个球 这时候使用隔板法分给n个箱子,加上n - 1个挡板,就是comb(s2 + n - 1, n - 1) 对于容斥原理,奇偶个数要对应不同的符号,这里需要注意 go代

CodeForces451E Devu and Flowers

题目链接 问题分析 没有想到母函数的做法…… 其实直接看题思路挺简单的。发现如果每种花都有无限多的话,问题变得十分简单,答案就是\(s+n-1\choose n - 1\)。然后发现\(n\)只有\(20\),于是大力容斥一波就完事了。 参考代码 #include <cstdio>const long long Max_n = 30;const long long Mod = 10000000

#数论,组合,容斥原理,lucas定理,乘法逆元#洛谷 CF451E Devu and Flowers

题目 n n n种颜色,每种颜色有 a i a_i ai​枝花,现挑出 m m m朵,使没有颜色完全相同的方案 分析 可以发现,这道题是求多重集的组合数,根据容斥原理也就是 C k + r − 1 k − 1 − ∑ i = 1 k C k + r − n i − 2 k − 1 + ∑ 1 ≤ i &lt; j ≤ k C k + r − n i − n j − 3 k − 1 −