burnside引理+polya計數法小結
WC上wwwwodddd講的整數和多項式相關裡面最後又burnside引理的一部分
被生成函式調戲瘋了的我突然斷線重連
坐在禮堂最後一排的沙發位上和老黃人瘋狂口糊
不過聽課的時候想的不是很細,重新整理了一發
大概就是
至於polya計數法就是求置換i下不變的方案數,將它理解為:把置換拆成若干個迴圈,每個迴圈顯然要染一樣的顏色,那麼方案數=顏色個數^迴圈個數
bingo,題目走起
Problem1 Path
- 在一個 n×n 的網格中,從左下角到右上角,每次向上或者向右 走一格,一共需要向右走 n 次,向上走 n 次。輸入 n(1 ≤ n ≤
10^6),問本質不同的方案有多少種。結果對 p = 10^9 + 9 取模。
如果兩個方案可以通過對稱和旋轉變成相同的,我們認為他們本質相同。
解法:路徑可以表示成長度為2n的01串,即每一步向上或者向右,對稱即對這個01串翻轉,或者對這個01串按位取反(注意這個是可以寫成置換形式的)。對於種置換分別討論:
1、不翻轉不取反,方案數=
2、翻轉不取反,如果要不變那麼i和n-i+1位要相同,把01串折半考慮即可,方案數=,若01串長度為奇數則為0
3、不翻轉 取反,這怎麼可能相同啊,方案數為0
4、翻轉且取反,同樣折半考慮,第i和第n-i+1位不同,01個數總是相等的,所以任意半個01串翻折取反後都是合法的,方案數為
burnside引理,上面四個加起來除以四就行了
Problem2 Ring
- 一個由 n(2 ≤ n ≤ 10^9) 個珠子組成的環,我們要將所有珠子染 成 c(1 ≤ c ≤ 10^9)
種顏色之一。問存在多少種本質不同的方案, 結果對 10^9 + 7 取模。 當兩種方案通過旋轉後變得相同時,我們認為他們本質相同。
但是不能翻轉。
觀察置換,會發現移動位的置換存在個迴圈節,根據burnside引理,,把它寫成尤拉函式的形式,列舉約數的時間代價就能求出來。
Problem3 Ring
- 一個由 n(2 ≤ n ≤ 109) 個珠子組成的環,我們要將所有珠子染 成 黑白兩種顏色。但是黑色不能相鄰,問有多少種本質不同的
方案,結果對 109 + 7 取模。 當兩種方案通過旋轉後變得相同時,我們認為他們本質相同。 但是不能翻轉。
推公式的方法與Problem2同理
其中為長度為的合法方案數,計算方法為,,
講題的時候和老黃人已經想出來解法,但是不會證,滿心期待地準備聽證明結果講踢人略過去。回來之後大概想了一下,大概是如果要放一個白色的球,那麼方案數為,若放一個黑色的球,上一個結尾如果是黑色球的話那麼我們這次放白球+黑球,上一個結尾如果是白色球的話我們這次放黑球+白球,方案數為,得到轉移
Problem4 Face
- 一個由 n×m 的矩形,我們要用他非常正常地密鋪整個平面, 我們要將所有格子染成 c 種顏色。問有多少種本質不同的方案, 結果對 10^9+7 取模。 當兩種方案看起來一樣時,即矩形通過迴圈平移時一樣,我們認 為他們本質相同。 1 ≤ n ≤ 109,1 ≤ m ≤ 109,1 ≤ c ≤ 10^9
嗯這是一個矩陣,所以它的置換也是一個矩陣,這個矩陣也是可以找迴圈節的,兩維分別位移a和b個單位的時候,矩陣的迴圈節為