HDU7355 Colorings Counting

· · 个人记录

题意:n 个点的环,每个点染上 m 种颜色中的一种,要求相邻点的颜色不同。若两种方案能通过任意次旋转、翻转、整体 +1m 变为相同,则这两种方案相同。求方案数。n,m\le 10^{18}

先考虑一些式子:n 个点的链,相邻点不同色的方案数 A(n)=m(m-1)^{n-1}

$n$ 个点的链,第一个不为 $1$ 且最后一个不为 $2$ 的方案数 $C(n)=(-1)^{n+1}\dfrac{(1-m)^{n+1}-1}{m}

假设下标从 0 开始。对下标的置换为 i\rightarrow(c+i)\bmod ni\rightarrow(c-i)\bmod n。根据 Burnside,考虑枚举一个置换和整体增量 x,求出此时不变的方案数。

第二种比较简洁,发现构成若干自环和二元环,图画出来比较美观。n 为奇数时,一定存在恰好一个自环,这要求 x=0,然而一定存在由相邻的点构成的二元环,所以答案为 0n 为偶数时,若 c 为偶数,则存在相对的两个自环,答案为 A(\dfrac n 2 +1)。若 c 为奇数,全部为二元环,但存在两个由相邻的点构成的二元环,x=\dfrac m 2,答案为 [2|m]A(\dfrac n 2)

考虑第一种,构成了 g=\gcd(n,c)个环,环长为 d=\dfrac n g。要求 dx\equiv 0\pmod m\dfrac m{\gcd(m,d)}|x0..g 相邻点不同色,其中 a_g\equiv a_0+kx\pmod mkx\equiv0\pmod m 时,方案数即为 B(g),否则为 mC(g-1)。注意到 k 满足 kc\equiv g\pmod nk\dfrac c g\equiv 1\pmod d\gcd(k,d)=1kx\equiv 0\pmod m 等价于 kq\equiv0\pmod{\gcd(m,d)},而 \gcd(k,m,d)=1,所以当且仅当 q=x=0。此时答案为 F(g)=mC(g-1)[\gcd(m,\dfrac n g)-1]+B(g)

第一类的答案为 \sum\limits_{i=1}^nF[\gcd(i,n)]=\sum\limits_{d|n}F(d)\varphi(\dfrac n d)。Pollard-rho 求出质因子后,预处理所有因数和对应的 \varphi 值即可,单次 \mathrm{O}(n^{\frac 1 4}+d(n)\log n)