HDU7355 Colorings Counting

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

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

\(n\) 个点的环,相邻点不同色的方案数 \(B(n)=(m-1)^n+(-1)^n(m-1)\),通过解递推式得到。

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

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

第二种比较简洁,发现构成若干自环和二元环,图画出来比较美观。\(n\) 为奇数时,一定存在恰好一个自环,这要求 \(x=0\),然而一定存在由相邻的点构成的二元环,所以答案为 \(0\)\(n\) 为偶数时,若 \(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)}|x\)\(0..g\) 相邻点不同色,其中 \(a_g\equiv a_0+kx\pmod m\)\(kx\equiv0\pmod m\) 时,方案数即为 \(B(g)\),否则为 \(mC(g-1)\)。注意到 \(k\) 满足 \(kc\equiv g\pmod n\)\(k\dfrac c g\equiv 1\pmod d\)\(\gcd(k,d)=1\)\(kx\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)\)

posted @ 2024-02-27 17:57  EverlastingEternity  阅读(3)  评论(0编辑  收藏  举报