【模板】Pólya 定理
本人过于垃圾,证明啥都不会,只会背结论。
这个定理一般是用来做形如"给 \(n\) 个点染色,有一些方案会重复" 这样的问题。
首先一个比较简单的概念是置换,一个置换 \(p\) 的作用就是把一个排列 \(a\),\(a_i\) 变成 \(a_{p_i}\)。
然后这个定理说的就是
\[|X/G|=\frac{1}{|G|}\sum_{g\in G} |B|^{c(g)}
\]
这是啥意思呢,就是有一个集合 \(A\) 和一个集合 \(B\) ,也就是相当于 \(A\) 是点集,\(B\) 是颜色集合,\(G\) 表示所有的 \(A\) 到 \(B\) 的映射的置换所构成的集合,这个集合是钦定的,也就是会重复置换的集合,\(X\) 是不考虑重复的全部染色方案。
\(|X/G|\) 表示 \(X\) 中的染色方案在 \(G\) 这个重复条件下的方案数,也就是我们要求的答案。
枚举其中的一个 \(g\) 就是枚举其中会造成重复的一个置换。
\(c(g)\) 就是对于 \(g\) 这个置换,它的置换环个数。
证明不会,可以看相关资料。
P4980 模板题。
给 \(n\) 个点的环染 \(n\) 个颜色,求本质不同染色数,\(n\le 10^9\)。
考虑本质相同的置换集合 \(G\) 是啥,显然里面就是 \(n\) 个置换,\(g_i\) 就是把 \(a\) 循环移动 \(i\) 格。
也就是 \(g_i=\{i+1,i+2...n,1,2,..i\}\)。
考虑这个东西的置换环数量,容易发现是 \(\gcd(i,n)\)。
那么就可以直接来了。
\[|X/G|=\frac{1}{|G|}\sum_{g\in G} |B|^{c(g)}\\
=\frac{1}{n}\sum_{i=1}^n n^{\gcd(n,i)}\\
=\frac{1}{n} \sum_{d|n} n^d \varphi(\frac{n}{d})
\]
直接暴力算 \(\varphi\) 就好了。