典中典题目。
考虑怎么转化成普通的容斥形式
发现可以将 S S S拆分成若干个集合相加的形式,然后分开求 lcm \text{lcm} lcm算贡献。
感觉和斯特林数有关系。
破防了,题解告诉我们这个容斥系数是 ( − 1 ) ∣ S ∣ − 1 ( ∣ S ∣ − 1 ) ! (-1)^{|S|-1}(|S|-1)! (−1)∣S∣−1(∣S∣−1)!
可以通过对边集容斥得到这个优美的结果。
原题解不见了。。。
发现可以将 a i = a j a_i=a_j ai=aj的两个点之间连边,这样我们转化成了图计数的问题。
设 C ( E ) C(E) C(E)表示连上边集 E E E后的连通块结果, F ( P ) F(P) F(P)表示连通块为 P P P时的答案,也就是连通块方案数的乘积。
那么根据经典的容斥原理,答案是 ∑ E ( − 1 ) ∣ E ∣ F ( C ( E ) ) \sum_{E}(-1)^{|E|}F(C(E)) ∑E(−1)∣E∣F(C(E))。
改变求和顺序得到: ∑ P F ( P ) ∑ C ( E ) = P ( − 1 ) ∣ E ∣ \sum_{P}F(P)\sum_{C(E)=P}(-1)^{|E|} ∑PF(P)∑C(E)=P(−1)∣E∣
首先要做过这道题 [集训队作业2013] 城市规划 。
记 G ( x ) G(x) G(x)表示简单无向图的 E G F EGF EGF, F ( x ) F(x) F(x)表示简单连通图的 E G F EGF EGF,发现 G ( x ) = ∑ n = 0 ∞ 2 ( n 2 ) x n n ! ( ∑ i = 0 ( n 2 ) ( − 1 ) i ( ( n 2 ) i ) ) = 1 + x G(x)=\sum_{n=0}^{\infty}2^{\binom{n}{2}}\frac{x^n}{n!}(\sum_{i=0}^{\binom{n}{2}}(-1)^i\binom{\binom{n}{2}}{i})=1+x G(x)=∑n=0∞2(2n)n!xn(∑i=0(2n)(−1)i(i(2n)))=1+x, G ( x ) = 1 + F ( x ) 1 ! + F ( x ) 2 2 ! + . . . + F ( x ) n n ! = exp(F(x)) G(x)=1+\frac{F(x)}{1!}+\frac{F(x)^2}{2!}+...+\frac{F(x)^n}{n!}=\text{exp(F(x))} G(x)=1+1!F(x)+2!F(x)2+...+n!F(x)n=exp(F(x)),手算便知 F ( x ) F(x) F(x),这样我们得到了容斥系数。最后用乘法原理即可。
暴力实现,复杂度 O ( 3 n ) O(3^n) O(3n)。
为什么是圆排列?我感觉有不用多项式的方法,但是我想不到。
remark \text{remark} remark 但是 N O I P NOIP NOIP已经不考多项式了。。。