【[HNOI2011] 卡农】--巧妙的推式子+容斥
很好的推式子题,消除了我对容斥的刻板印象😢
本以为是以类似于在【第 \(i\) 个数出现偶数次】的基础上,做 \(|\bigcup_{i=1}^n{A_i}|\) 这种容斥的
哎,直接上 solution 吧。
因为无序不好做,那就用有序来做
经典地,设 \(f_i\) 为只考虑前 \(i\) 个集合的答案
那么前 \(i\) 个对应的 \(A_{2^n-1}^{i-1}\) 种选择,每一种方案,都对应了当前的一种唯一的选法
- 有可能之前已经为偶数次,当前为空集,减去 \(f_{i-1}\)
- 有可能和之前选过的集合 \(j\) 重复,那么去掉 \(i,j\) 便为合法,减去 \(f_{i-2}\times(i-1)\times(2^n-1-(n-2))\) 。
\[f_i=A_{2^n-1}^{i-1}-f_{i-1}-f_{i-2}\times (i-1)\times (2^n-i+1) \\
\text{ans} = \frac{f_n}{n!}
\]

浙公网安备 33010602011771号