容斥原理

容斥原理

image

  • 错排问题:求 \(1\sim n\) 的排列满足 \(p_i\not=i\)

\[Ans=\sum\limits_{i=0}^n\binom{n}{i}(-1)^i(n-i)! \]

  • \(n\) 个变量 \(x_i\) 满足 \(x_i\in[0,c_i]\)\(\sum x_i=S\) 的解的数量, \(n\le10\)

在这里学会了一种表达方式,这里写的略微严谨一点吧,首先考虑 \(c_i\) 的限制去掉的时候,显然方程的解为 \(\binom{S+n-1}{n-1}\) 那么我们可以以这样的表达式去写设 \(f(A)\) 表示对于 \(A\) 的方案数,那么有 \(Ans=\prod [f(x_i\ge0)-f(x_i>c_i)]\)

但是时间复杂度大概是 \(O(2^n\cdot \text{poly}(n))\) 的,但是这个东西可以用 Meet in the Middle 算法去做,可以到 \(2^{\frac{n}{2}}\cdot \text{poly}(n)\)

例题:P6914

Min-max 容斥

例题:CF1392H

posted @ 2026-08-02 11:50  static_inline  阅读(2)  评论(0)    收藏  举报