(置換等名詞會在前置知識中有解釋)ide
\(1.\)在本文中,題目要求的染色方案等統稱爲「元素」。優化
\(2.\)兩個元素嚴格相等咱們記作「\(=\)」,兩個元素等價(按題目所給的置換能夠互相獲得)咱們記作「\(\Leftrightarrow\)」。spa
\(3.\)元素\(a\)進行置換\(g\)咱們記作\(a\otimes g\)。對象
\(4.\)置換之間的乘積記作\(\odot\),\(g_i=g_j\odot g_k\),當且僅當\(\forall a,a\otimes g_i=a\otimes g_j\otimes g_k\),將\(g_j\odot g_k\)代入\(g_i\)得\(a\otimes(g_j\odot g_k)=a\otimes g_j\otimes g_k\)。get
以下圖所示,這是一個置換,一個置換隻與兩行之間的對應關係有關,與列的順序無關。
\[\left(\begin{matrix}1&2&3&4\\2&3&1&4\end{matrix}\right)=\left(\begin{matrix}1&4&3&2\\2&4&1&3\end{matrix}\right)\]
咱們的一個元素\(\left(\begin{matrix}3&2&4&1\end{matrix}\right)\)在通過這個置換後就變成了\(\left(\begin{matrix}4&3&2&1\end{matrix}\right)\)。列\({^a_b}\)表示原來第\(a\)位的元素置換後到了第\(b\)位。it
形式以下的置換叫作一個\(n\)階循環(任意一個\(n\)階循環能夠記作\(r_n\)):
\[\left(\begin{matrix}a_1&a_2&a_3&\cdots&a_n\\a_2&a_3&a_4&\cdots&a_1\end{matrix}\right)\]class
指把置換\(g\)分解成\(r_1^{k_{1}}r_2^{k_{2}}\cdots r_n^{k_{n}}\)的形式(\(r_j^{k_{j}}\)表示\(j\)階循環一共有\(k_{j}\)個(同階循環能夠不相同)),各個循環之間的元素互不相交。感性理解一下就是,對於列\(^a_b\),從\(a\)向\(b\)連一條有向邊,這樣會造成一個個環,一個長度爲\(i\)的環對應着一個\(r_i\)。令\(w(g)=\sum_{i=1}^n k_i\),即循環總個數。擴展
若是元素\(a\otimes g_i = a\),那麼咱們稱\(a\)爲置換\(g_i\)的不動點,\(g_i\)的不動點個數用\(\chi(g_i)\)表示。循環
羣用\((G,\oplus)\)表示,其中\(G\)是一個集合,\(\oplus\)是定義在\(G\)上的一個二元運算,而且知足:gc
封閉性(\(\forall a,b \in G,a\oplus b \in G\))
結合律(\(a\oplus(b\oplus c)=(a\oplus b)\oplus c\))
存在單位元(\(\exists e,\forall a,e\oplus a = a\oplus e = a\))
存在逆元(\(\forall a,\exists a^{-1},a\oplus a^{-1} = a^{-1}\oplus a = e\))
那麼這是一個羣。
置換羣就是將置換做爲元素的羣。
證實:
封閉性:置換的乘積也是置換,在這個羣中。
結合律:手模小樣例可知,\(a\odot b\odot c=a\odot(b\odot c)\)。
單位元:
\[\left(\begin{matrix}1&2&3&\cdots&n\\1&2&3&\cdots&n\end{matrix}\right)\]
逆元:將置換的兩行交換位置即是逆元。
若是\(\exists g,s.t.~a\otimes g = b\)那麼咱們稱\(a\Leftrightarrow b\),全部互相等價的元素組成一個等價類,元素\(a\)所屬的等價類記作\(E_a\)答案\(L\)即是等價類的種類。
置換羣\(G\)中,使元素\(a\)不變的置換全體,稱爲\(a\)的不動置換類,記作\(Z_a(\forall g \in Z_a,a\otimes g=a\&\&\forall g\notin Z_a,a\otimes g\ne a)\)。
等價類個數
\[L = \frac {\sum_{g\in G} \chi(g_j)}{|G|}\]
\(step~1:\)首先看兩個定理:
\(1.\)
彷彿沒什麼用的定理:\(|Z_k|\)是\(G\)的一個子羣。
證實:
封閉性:使\(k\)不動的兩個置換的積也使\(k\)不動,屬於這個羣。
結合律:顯然。
存在單位元:顯然任何元素都\(G\)單位元的不動點。
存在逆元:置換\(g\)屬於元素\(a\)的不動置換類,當且僅當\(g\)的每一列\(^x_y\),\(a_x=a_y\)。顯然\(g\)的逆元也知足這個條件,也在不動置換類中。
\(2.\)
重要定理:\(\forall a,|E_a||Z_a|=|G|\)
證實:
若是對於\(\forall b\in E_a\)都有剛好\(|Z_a|\)個不一樣置換使\(a\)轉化成\(b\),那麼定理得證(由於\(a\)進行一種置換有且僅有一個結果)。
首先,由於\(b\in E_a\)必定存在一個置換\(p\)使得\(a\otimes p = b\)。由於\(Z_a\)是\(a\)的不動置換類,因此
\(\forall z\in Z_a\)
\(\because a\otimes z=a,a\otimes p = b\)
\(\therefore a\otimes z\otimes p = b\)
\(\therefore a\otimes(z\odot p)=b\)
\(z\)互不相同,因此\(z\odot p\)互不相同,\(z\)有\(|Z_a|\)種取值,因此有至少\(|Z_a|\)種置換,使\(a\)轉化成\(b\)。如今咱們只要能證實\(z\odot p\)可以取遍全部使\(a\)轉化成\(b\)的置換便可。
咱們考慮反證法:
同上,由於\(b\in E_a\)必定存在一個置換\(p\)使得\(a\otimes p = b\),
假設存在一個置換\(q\),\(a\otimes q = b\),且\(\forall z\in Z_a,z\odot p\neq q\)。
顯然\(\exists c=q\odot p^{-1}\in G,s.t.~c\odot p = q\)。
\(\because a\otimes q =b,c\odot p = q\)
\(\therefore a\otimes(c\odot p)=b\)
\(\therefore a\otimes c\otimes p=b\)
\(\because a\otimes p =b\)
\(\therefore a\otimes c = a\)
\(\therefore c\in Z_a,\)與假設\(\forall z\in Z_a,z\odot p\neq q\)相悖,因此不成立。
證畢。
\(step~2:\)
設\(U\)爲一個等價類集合,共\(L\)個等價類。
設\(n\)是元素總數。
\(\because \forall a,|E_a||Z_a|=|G|\)
\(\therefore |Z_a|=\frac{|G|}{|E_a|}\)
\(\therefore \sum_{i=1}^n|Z_i|=|G|\sum_{i=1}^n\frac{1}{|E_i|}\)
由於每一個\(E_i\)大小爲\(|E_i|\),貢獻\(\frac{1}{|E_i|}\),會被算\(|E_i|\)次,因此每一種等價類的總貢獻\(1\)。\(\sum_{i=1}^{n}\frac{1}{|E_i|}=\)等價類的種類即答案\(L\)。
\(\therefore \sum_{i=1}^n|Z_i|=|G|L\)
\(\therefore L=\frac{\sum_{i=1}^n|Z_i|}{|G|}\)
不動點和不動置換的關係是相互的,全部置換的不動點之和等於全部元素的不動置換之和。
\(\therefore L=\frac{\sum_{g\in G}\chi(g)}{|G|}\)
證畢。
若題目是對\(n\)個對象染\(m\)種顏色,則
\[\chi(g)=m^{w(g)}\]
\[L=\frac{\sum_{g\in G}m^{w(g)}}{|G|}\]
若\(a\)是\(g\)的不動點,對於每一列\(^x_y\),都有\(a_x=a_y\),而一個循環是許多列首尾相接,因此他們都相等。因此對於\(g\)的一個循環\(r\),\(\forall i,j\in r,a_i =a_j\),因此\(\chi(g)\)就至關於給\(g\)每一個循環染色的方案數(每一個循環染相同的顏色)。因此\(\chi(g)=m^{w(g)}\)。
證畢。
這個式子是基於能夠給\(g\)每一個循環任意染色這個前提的,若是染色數量有限制,咱們就須要求給\(g\)每一個循環染色的方案數,一般用\(dp\)來擴展此問題。
\(1.\)(套路\(1\))將長度爲\(n\)序列(或者環)循環移\(k\)位,循環個數爲\(\gcd(n,k)\)。
\(2.\)(套路\(2\))將長度爲\(n\)環沿對稱軸反轉,若\(n\)是奇數則\(n\)條對稱軸的循環個數都是\(\lceil\frac n 2\rceil\);不然,有\(\frac n 2\)對稱軸的循環個數是\(\frac n 2\),另一半對稱軸個數是\(\frac n {2}+1\)。
\(1.\)luogu 1446
\(a.\)題目大意:
有\(n\)張撲克牌,染三種顏色,每種顏色規定數目。再給定\(m\)中洗牌方法,經過洗牌能夠互相獲得的方案等價,求有多少種不一樣方案。
\(b.\)題目分析:
在本題中,洗牌方法就是置換,而染色方案是「元素」。
本題給了 「輸入數據保證任意屢次洗牌均可用這\(m\)種洗牌法中的一種代替,且對每種洗牌法,都存在一種洗牌法使得能回到原狀態」 的條件,使知足封閉性和存在逆元。至於單位元,咱們須要人爲添加一種置換(本身到本身),來使之知足條件,因爲單位元\(a\otimes e = a\)的性質,不會對答案產生影響,但咱們必須添加使之可使用\(Burnside\)引理。
\(c.\)具體作法:此處染色有數目限制,不能直接使用\(Polya\)定理。咱們首先\(\Theta(n)\)求出每一種洗牌方案的循環個數。而後咱們對於每一種洗牌方案,經過\(dp\)求染色方案,具體的說,\(f[i][a][b][c]\)表示前\(i\)個循環已經染完色,三種顏色分別剩\(a,b,c\)個
,初始狀態\(f[0][Sum_a][Sum_b][Sum_c]\)答案是\(f[w][0][0][0]\)。
總複雜度\(\Theta(nmSum_aSum_bSum_c)\),可過。
\(2.\)luogu 4980
\(a.\)題目大意:本身看吧
\(b.\)題目分析:直接套公式,置換爲\(n\)種循環移位 ,直接套用套路\(1\),循環個數爲\(\gcd(n,k)\)的性質來優化。
\[ans = \frac 1 {|G|}{\sum_{i = 0} ^ {n-1}m^{\gcd(n,i)}}\]
咱們優化一下:
\[\sum_{i=0}^{n-1}m^{\gcd(n,i)}=\sum_{t|n}\sum_{i=1}^{\frac n t}I[\gcd(it,n)==t]\times m^t=\sum_{t|n}\sum_{i=1}^{\frac n t}I[\gcd(i,\frac n t)==1]\times m^t=\sum_{t|n}\varphi(\frac n t)m^t\]
咱們只須要枚舉\(t\)到\(\sqrt{n}\)就能夠了,而後再\(\sqrt{n}\)求\(\varphi\),複雜的\(\Theta(Tn^{\frac 3 4})\)。您也能夠大力Pollad-rho一發。
\(3.\)UVA11255
大水題限制染色次數+能夠翻轉旋轉,直接套用套路\(1\)、\(2\)便可。
\(4.\)UVA10601
\(a.\)題目大意:一個正方體,給棱染色,有數量限制,旋轉同構。
\(b.\)題目分析:
咱們本題置換種類繁多:橫向旋轉(面向本身的面不變),豎向旋轉(面向本身的面發生改變),以及兩種旋轉的組合。
可是咱們發現有一些旋轉的組合結果是相同的,咱們考慮枚舉結果,即選定面向本身的正方形的下底邊爲基準,枚舉原來哪一個位置的邊轉到了這個位置,共十二種置換,而後統計每一個置換的循環個數(暴枚或者手模均可以),再根據數量限制擴展一下定理便可。
全是廢話
\(Polya\)定理實質上是\(Burnside\)引理的一個擴展,雖然式子簡單,可是可以解決的問題卻頗有限。咱們一般經過\(dp\),組合數等來求不動點個數\(\chi(g)\),這既能夠說是\(Polya\)定理的擴展也能夠說是\(Burnside\)引理的擴展。