画画
题目链接:luogu P4708
题目大意
问你 n 个点的无标号的每个连通块有欧拉回路的图的个数。
思路
你看到无编号,也就代表着可以通过置换把一些有编号的看做同一个。
那两个点之间的边有存在和不存在两种,所以我们考虑用 Burnside 引理:
a n s = 1 ∣ M ∣ ∑ c ( r ) ans=\dfrac{1}{|M|}\sum c(r) ans=∣M∣1∑c(r)
其中 c ( r ) c(r) c(r) 为 r r r 这个置换中不动点的个数,这道题中 ∣ M ∣ = n ! |M|=n! ∣M∣=n!。
然后你发现这个置换是点的,然而你要统计的 c ( r ) c(r) c(r) 是有关边的。
那你会想到一道叫做有色图的题目。
然后我们假设你已经会了做有色图,然后我们考虑用做那道题的思路来搞这道题。
那你还是考虑 dfs 出点置换的循环,设为 ( a 1 , a 2 , . . . ) ( b 1 , b 2 , . . . ) . . . (a_1,a_2,...)(b_1,b_2,...)... (a1,a2,...)(b1,b2,...)...,然后长度分别为 l 1 , l 2 , . . . l_1,l_2,... l1,l2,...。
然后记得每个乘上 n ! ∏ l i ∏ c i ! \dfrac{n!}{\prod l_i\prod c_i!} ∏li∏ci!n!,然后 n ! n! n! 和外面的 1 ∣ M ∣ \dfrac{1}{|M|} ∣M∣1 抵消( ∣ M ∣ = 1 |M|=1 ∣M∣=1)。
然后你还是分类讨论:
我们搞之前首先要确定一个东西,就是对于一个循环中的边,它们肯定是要么都有这条边,要么都没有。
而且我们再看欧拉回路的性质,就是每个点的度数都是偶数,那我们就要保证你选出来的方案点度数都是偶数。
如果是在同一个循环,那你就像之前一样分奇偶讨论:
- 如果是奇数:
那就是 l − 1 2 \dfrac{l-1}{2} 2l−1 个循环,然后你会发现这些循环的边要了之后每个点的奇偶度数都不会改变。因为它们都是转一圈,然后两边都会加。
- 如果是偶数:
那就是 ( l