群論學習小記


參考資料

  • 《組合數學(第 5 版)》
  • Soulist:Polya 定理

軌道 - 穩定子定理

\(S_n\) 的一個子群 \(G\),設 \(Z_k\) 表示作用在 \(1\sim n\) 上使 \(k\) 保持不動的置換類,\(E_k\) 表示 \(k\) 在群 \(G\) 作用下的 “軌道” —— 所能到達的位置集合,有 \(|E_k||Z_k| = |G|\)。i.e. 使 \(k\) 保持不動的置換個數乘以其軌道大小等於置換群大小。

證明:對於一個等價類 \(E = \{a_1, a_2, \cdots, a_{|E|}\}\),使 \(a_1\) 不動的置換類為 \(Z_{a_1}\)。存在置換 \(p_i\) 使得 \(a_1\) 變為 \(a_i\)。設 \(G_i = Z_{a_1}p_i\),則 \(G_i\) 互不相交(對 \(a_1\) 產生的影響不同),且大小均為 \(|Z_{a_1}|\)。又因為 \(G_i\) 的並包含於 \(G\),且任何屬於 \(G\) 的元素均屬於 \(G_i\) 的並,故 \(\sum |G_i| = |G|\),即 \(|E_{a_1}||Z_{a_1}| = |G|\)

換句話說,使 \(a_1\) 不動的所有置換 \(Z_{a_1}\) 在乘以使 \(a_1\) 變為其 所在等價類\(a_i\)任意一個 置換 \(p_i\) 后,可以得到 所有 使 \(a_1\) 變為 \(a_i\) 的置換 \(G_i\),且大小均為 \(|Z_{a_1}|\)

Burnside 引理

設定義在 \(G\) 上的函數 \(f(g)\ (g\in G)\) 表示使集合 \(S\) 中的元素 \(k\) 在置換 \(g\) 的作用下不變的 \(k\) 的個數,即置換的 不動點 數量。\(f(g) = \sum\limits_{k \in S} ^ S [g(k) = k]\),則 \(G\) 作用在集合 \(S\) 上的本質不同等價類個數為 \(\dfrac{\sum\limits_{g\in G} f(g)}{|G|}\)

  • Proof. 對屬於同一等價類的所有元素 \(a_i\),據定義可知這樣的 \(a_i\)\(|E_{a_i}|\) 個。每個 \(a_i\) 會在 \(g\in Z_{a_i}\) 的置換處被統計,故對於總和的貢獻為 \(|Z_{a_i}|\)。因此,每個 等價類 對答案的貢獻為 \(|E_{a_i}||Z_{a_i}|=|G|\)\(\square\)

Pólya 計數定理

Pólya 定理是 Burnside 引理的推廣,它應用於 染色問題循環同構 方案計數。設 \(c(g)\) 表示置換 \(g\)循環節 個數。用 \(m\) 種顏色給 \(n\) 個對象染色在 \(n\) 階置換群 \(G\) 意義下的方案數為 \(\dfrac {\sum\limits_{g\in G}m ^ {c(g)}} {|G|}\)

  • Proof. 由 Burnside 引理,只需證明 \(f(g)=m^{c(g)}\)。若一組染色方案 \(c_1, c_2, \cdots, c_n(c_i\in [1, m])\) 在置換 \(g\) 下是不動點,則對於 \(g\) 的任意循環 \((p_1, p_2, \cdots, p_i)\) 均有 \(c_{p_1} = c_{p_2} = \cdots = c_{p_i}\)。每個循環有 \(m\) 種染色方式,因此總方案數即不動點數量,由乘法原理得 \(m^{c(g)}\)\(\square\)

Pólya 定理在 OI 界的運用

  1. 僅考慮 循環同構 的式子形如 \(\dfrac{\sum\limits_{i = 1} ^ n m ^ {\gcd(n, i)}} n\)\(n\) 在模意義下可能沒有逆元,此時可擴展數域,將每個數寫成 \(an+b\) 的形式。乘法法則形如 \((an + b)(cn + d) = (acn + ad + bc)n + bd\)。最后取出 \(n\) 前面的系數即可。注意,求完整個 \(\sum\) 才能忽略 \(b\)

I. P4980 【模板】Pólya 定理

Pólya 定理的簡單應用。一個 \(n\sim k\) 階旋轉置換(共有 \(n\) 個元素,每個元素旋轉 \(k\) 單位) 的循環節個數為 \(\gcd(n, k)\),故答案為 \(\dfrac{\sum\limits_{i = 1} ^ n n ^ {\gcd(i, n)}} n\)。因為 \(d\mid \gcd(i, n)\),考慮枚舉 \(d\mid n\),原式等於 \(\dfrac 1 n \sum\limits_{d\mid n} n ^ d\sum\limits_{i = 1} ^ n[\gcd(i, n) = d]\)\(\dfrac 1 n\sum\limits_{d\mid n}n ^ d \varphi\left(\dfrac n d\right)\)。枚舉所有因數並暴力,或先篩出所有素數求歐拉函數。時間復雜度 \(\mathcal{O}(Td(n)\sqrt n)\)。常數非常小,可以通過。

*II. P5233 [JSOI2012]愛之項鏈

本題和 Pólya 定理的板子非常相似。問題分為兩部分:求單獨一個環形的方案數,以及給 \(n\) 階環相鄰元素染不同顏色的方案數。前者是板子,后者是經典問題。

*III. CF1630E Expected Components

高妙計數題。考慮將問題分為兩部分來做:一是求方案數,二是求總連通塊數量。

性質 1:我們並不關心數字的值,僅關心每個數字的出現次數 \(cnt\)。因此,設不同的數共有 \(c\) 個,大小分別為 \(1\sim c\),出現次數分別為 \(cnt_1, cnt_2, \cdots, cnt_c\)

求方案數:循環同構自然想到 Burnside 引理。我們需要求出在旋轉 \(k\ (1\leq k\leq n)\) 個單位下不動點的數量。

我們知道,旋轉 \(k\) 單位的置換 \(g_k\) 會將大小為 \(n\) 的循環隊列分成 \(\gcd(n, k)\) 個大小為 \(\dfrac n {\gcd(n, k)}\) 的等價類,每個等價類內部所有數應相等,才能保證它在置換 \(g_k\)不動。例如當 \(k = 2\)\(n = 6\) 時,只有 \(a_1 = a_3 = a_5\)\(a_2 = a_4 = a_6\) 時它是 \(g_2\) 的不動點,故只需要確定 \(a_1, a_2\) 即可確定整個序列。換句話說,\(a_1 \sim a_{\gcd(n, k)}\)自由變量\(g_k\) 把循環隊列的大小從 \(n\) 縮成了 \(\gcd(n, k)\)

考慮枚舉 \(k\),令 \(L = \gcd(n, k)\)\(d = \dfrac n L\),則相當於我們將問題規模縮小了 \(d\) 倍:因為 \(a_1 \sim a_L\) 是自由變量,而 \(a_i\ (L < i \leq n)\) 依賴於 \(a_{i - L}\) 的取值(必須與 \(a_{i - L}\) 相等),這樣才能保證 \(a\) 在置換 \(g_k\) 下不動。

因此,總方案數即 \(\dbinom {L}{\frac {cnt_1} d, \frac {cnt_2} d, \cdots, \frac {cnt_c} d}\) 表示往 \(L\) 個位置分別放入 \(\dfrac {cnt_i} d\) 個相同的數,這是經典的多重組合數。

直接枚舉 \(k\),時間復雜度平方,無法接受。但注意到很多 \(k\) 均無解:對應算出的 \(d\) 不整除於某個 \(cnt\)。此時我們無法將問題規模縮小 \(d\) 倍,即 \(g_k\) 不存在不動點。另有很多 \(k\)\(n\)\(\gcd\) 相等,說明我們進行了很多次重復計算。

容易發現 \(d\) 應當滿足 \(d\mid \gcd(cnt_i, n)\),故直接枚舉 \(\gcd(cnt_i, n)\) 的因數 \(d\),算出 \(L\) 以及對應的多重組合數,記為 \(f_L\),表示長為 \(L\) 的循環隊列的答案。總方案數即

\[\dfrac{\sum_{i = 1} ^ n f_{\gcd(i, n)}} n \]

類似的,對於連通塊數量,由於任意兩個相鄰的不同的數均會產生 \(1\) 的貢獻,故直接枚舉這兩個數 \(x, y\ (x\neq y)\)。總方案數為 \(g_L = \dbinom {L - 2}{\frac {cnt_1} d, \frac {cnt_2} d, \cdots , \frac {cnt_x} d - 1, \cdots , \frac {cnt_y} d - 1, \frac {cnt_c} d}\times n\),這是因為我們欽定了某兩個相鄰元素分別為 \(x, y\),貢獻即剩下來的所有數的排列方案數,乘以可能產生貢獻的所有位置數量。注意乘以的是 \(n\) 而非 \(L\):即使 \(a_{L + 1} \sim a_n\) 依賴於 \(a_1\sim a_L\),但當 \(a_1\sim a_L\) 產生貢獻時,它們也會相應產生貢獻。

發現上式即 \(\dfrac{f_L\times cnt_x\times cnt_y}{L\times (L - 1) \times d ^ 2}\),故只需求出 \(\sum\limits_{x\neq y} cnt_x \cdot cnt_y\)。這容易做到。

\(f, g\) 的時間復雜度在精細實現下均為線性。復雜度瓶頸在於為計算答案 \(\dfrac {\sum\limits_{i = 1} ^ n g_{\gcd(n, i)}}{\sum\limits_{i = 1} ^ n f_{\gcd(n, i)}}\),求每個數與 \(n\)\(\gcd\) 的線性對數,但常數非常小。注意特判 \(c = 1\) 的特殊情況。代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM