Content:组合数学
Date:2025.7.31

课堂内容

容斥原理

其主要思想为:把禁止违反哪些规则改为钦定违反了哪几条规则,并赋予 (1)k(-1)^k (即违反 kk 条规则)的容斥系数。

二项式反演

g(n)=i=0n(ni)f(i)f(n)=i=0n(1)ni(ni)g(i)g(n)=i=nN(in)f(i)f(n)=i=nN(1)in(in)g(i)\begin{aligned} g(n) &= \sum_{i=0}^n \binom{n}{i} f(i) \Leftrightarrow f(n) = \sum_{i=0}^n (-1)^{n-i} \binom{n}{i} g(i) \\ g(n) &= \sum_{i=n}^N \binom{i}{n} f(i) \Leftrightarrow f(n) = \sum_{i=n}^N (-1)^{i-n} \binom{i}{n} g(i) \end{aligned}

例题

Luogu-P1450 [HAOI2018] 硬币购物

题目大意

给定硬币面值 c1,c2,c3,c4c_1, c_2, c_3, c_4 和硬币个数 d1,d2,d3,d4d_1, d_2, d_3, d_4,求恰好凑齐 ss 元的方案数。TT 组询问。

思路

首先我们可以对硬币做完全背包,这样我们就知道了用这些硬币可以凑出那些。

然后带上限制条件,做容斥即可。

提交记录:link

AGC005D ~K Perm Counting

题目大意

给定 N,KN,K,求所有满足 aiik|a_i - i| \ne k 的长度为 NN 的排列的个数。

思路

参考 Dreamunk 大佬的题解。将所有的不合法的情况之间连边,我们就得到了若干条不合法的链,对这些链进行 DP 后,就可以容斥了。

提交记录:link

最后的最后,还是要说一句 我恨计数