Burnside引理與Polya定理

感受這兩個東西好鬼畜= = ,考場上出了確定不會qwq。不過仍是學一下吧用來裝逼也是極好的算法

羣的定義

與下文知識無關。。ide

給出一個集合$G = \{a, b, c, \dots \}$和集合上的二元運算"$*$",並知足spa

(1).封閉性:$\forall a, b \in G, \exists c \in G, a * b = c$對象

(2).結合律:$\forall a, b, c \in G, (a * b) * c = a * (b * c)$遞歸

(3).單位元:$\exists e \in G, \forall a \in G, a * e = e * a = a$io

(4). 逆元:$\forall a \in G, \exists b \in G, a * b = b * a = e$,記$b = a^{-1}$搜索

則稱集合$G$在運算「$*$」之下是一個羣,簡稱$G$是羣循環

 

置換

$n$個元素, $1, 2, \dots n$之間的一個置換$\begin{pmatrix} 1 & 2 & \ldots n \\ a_{1} & a_{2} & \ldots a_{n} \end{pmatrix}$表示$1$被$1$到$n$中的某個數$a_1$取代,$1$被$1$到$n$中的某個數$a_2$取代,$\dots$直到$n$被$1$到$n$中的某個數$a_n$取代,且$a_1, a_2, \dots a_n$互不相同方法

 

置換羣

置換羣的標準定義涉及到新定義,在OI中你能夠簡單的認爲集合

置換羣的元素是置換,運算是置換的鏈接,

例如$$\begin{pmatrix} 1 & 2 & 3 & 4 \\ 3 & 1 & 2 & 4 \end{pmatrix}\begin{pmatrix} 1 & 2 & 3 & 4 \\ 4 & 3 & 2 & 1 \end{pmatrix}=\begin{pmatrix} 1 & 2 & 3 & 4 \\ 2 & 4 & 3 & 1 \end{pmatrix}$$

解釋一下:

在第一個置換中,$1$變爲$3$,第二個置換中$3$變爲$2$,所以$1$先變爲$3$再變爲$2$

在第一個置換中,$2$變爲$1$,第二個置換中$1$變爲$4$,所以$2$先變爲$1$再變爲$4$

在第一個置換中,$3$變爲$2$,第二個置換中$2$變爲$3$,所以$3$先變爲$2$再變爲$3$

在第一個置換中,$4$變爲$4$,第二個置換中$4$變爲$1$,所以$4$先變爲$4$再變爲$1$

Burnside引理

設$G= \{a_1,a_2, \dots a_g\}$是目標集$[1,n]$上的置換羣,$D(a_i)$表示在置換$a_i$做用下不動點的個數。$L$表示本質不一樣的方案數,則

$$L = \frac{1}{|G|} \sum_{j = 1}^s D(a_j)$$

 

P♂lya定理

在Burnside引理中,$D(a_i)$,也就是不動點的個數每每不是很好計算。若是採用枚舉每一個元素的搜索算法,總時間複雜度爲$O(nsp)$,其中$n$表示元素個數,$s$表示置換個數,$p$表示格子數

Polya定理對於特定的題目,提供了一種高效的計算方法

首先介紹一下循環的概念

$$\left( a_{1}a_{2}\ldots a_{n}\right) =\begin{pmatrix} a_{1} & a_{2} & \ldots & a_{n-1}a_{n} \\ a_{2} & a_{3} & \ldots & a_{n}a_{1} \end{pmatrix}$$

稱爲$n$階循環。每一個置換均可以寫成若干不相交的循環的乘積,兩個循環$(a_1, a_2, \dots a_n)$和$(b_1b_2 \dots b_n)$互不相交是指$a_i \not =b_j,i, j = 1,2, \dots n$

例如

$$\begin{pmatrix} 1 & 2 & 3 & 4 & 5 \\ 3 & 5 & 1 & 4 & 2 \end{pmatrix}=\left( 13\right) \left( 25\right) \left( 4\right)$$

解釋一下,$1$先變成$3$,$3$再變成$1$,這樣無限遞歸下去$(1,3)$便構成了一個循環

同理,$(2,5)$也會構成一個循環。

$4$只能變成本身,所以本身構成爲一個循環

 

Polya定理:

設$G$是$p$個對象的一個置換羣,用$m$種顏色塗染$p$個對象,則不一樣染色方案爲$$L = \frac{1}{|G|} (m^{c(g_1)} + m^{c(g_2)} + \dots + m^{c(g_s)})$$

 

其中$G = \{g_1, g_2, \dots g_s \}$,$c(g_i)$爲置換$g_i$的循環節數$(i = 1, 2, \dots s)$

Polya定理沒有枚舉元素,所以它的複雜度爲$O(sp)$

 

可是它也有必定的限制條件,好比說某種顏色的不能選

這時候咱們就須要利用一個高端操做(例如dp),來推廣Polya定理

相關文章
相關標籤/搜索