Itst Orz
以下的 \(n\) 一般表示棋盤的大小為 \(n\times n\) 。 \(B_n=\{(i,j)\mid 1\le i,j\le n\}\) 。
對於一個棋盤 \(S\) ,定義棋盤數 \(r_k(S)\) 表示在 \(S\) 里面放 \(k\) 個棋子的方案數,定義 \(h_{k,n}(S)\) 表示所有 \(R_n(B_n)\) (相當於所有排列)中,恰好有 \(k\) 個棋子在 \(S\) 里面的方案數。
4 基礎定理
4.1 棋盤數與命中數的關系
顯然有
然后做一番變形,可以得到
所以命中數可以轉化為棋盤數。
4.3 分離定理
同行同列的點連邊,那么不同的連通塊可以分開計數,然后棋盤多項式就是乘在一起。
5 禁區排列問題
錯排問題:令 \(S=\{(i,i)\mid 1\le i\le n\}\) ,那么要求 \(h_{0,n}(S)\) 。用上面那個式子反演一下即可得到 \(h_{0,n}(S)=\sum_k (-1)^k (n-k)!r_k(S)\) ,而顯然 \(r_{k}(S)={n\choose k}\) 。
夫妻分座問題:給定 \(n\) 和兩個排列 \(p,q\) ,對每個 \(k\) 求有多少個排列 \(\pi\) 使得 \(\sum [\pi_i=p_i\or \pi_i=q_i]=k\) 。
也就是求命中數,可以轉化為求棋盤數。這里的棋盤非常稀疏,可以把每一列看做連接兩個點的邊,然后對每個環計數。
6 Ferrers 棋盤的棋盤多項式
Ferrers 棋盤是滿足 \(S=\{(i,k)\mid 1\le k\le a_i\}\) 且 \(a\) 單調不降的棋盤,記為 \(F(a_1,\cdots,a_n)\) 。
6.1 下降冪棋盤多項式分解定理
顯然 \(r_n(S)\) 是容易計算的。對於沒有放滿的情況我們可以干一些奇怪的事情,在下面多加 \(x\) 行,然后把沒有放的列強制在下面放滿。
(這種加 \(x\) 行然后強制放滿的思路在后面還會用到。)
加了 \(x\) 行之后,放滿的方案數是
因為對於所有足夠大的非負整數 \(x\) 都成立,於是就得到系數對應相等。
普通多項式轉下降冪多項式並不是很好做,但是可以在分治 NTT 計算右邊的時候直接維護下降冪多項式。
黑白分離,然后旋轉 45° ,然后交換行列邊數 Ferrers 棋盤,然后發現形式非常好看,可以直接計算出右邊的點值,然后卷積得到了下降冪多項式。
6.2 階梯棋盤與斯特林數
定義階梯棋盤為滿足 \(a_i=i-1\) 的 Ferrers 棋盤,記為 \(St_n\) 。
用上面那個定理,直接得到
所以有 \(r_{n-k}(St_n)={n\brace k}\) 。另外也可以無腦 DP ,然后發現轉移式和初始值與斯特林數完全一樣。
還可以再整個陰間雙射:把 \(n\) 個數分成 \(k\) 個無序集合,在每個集合中把元素排序得到 \(\{a_1,\cdots,a_p\}\) ,那么對於 \(1<i\le p\) 放棋子 \((a_i,a_{i-1})\) 。
另外還可以把圓排列也整個活。
設 \(f_k(S)\) 表示在棋盤 \(S\) 上放 \(k\) 棋子,且任意兩個棋子不同列的方案數。也就是把不同行的限制刪掉了。
對於 Ferrers 棋盤,仍然用加上 \(x\) 行的方法,得到
所以如果 \(a_i=i-1\) 則有 \(f_{n-k}(St_n)={n\brack k}\) 。
然后也可以整一個雙射,不過不是很陰間。對於一行,如果選擇放 \(x\) (也就是不放),那就單獨開一個圓排列;否則如果放在了 \((i,k)\) 則說明把 \(i\) 插入到 \(k\) 后面。
斯特林數有反演公式
而上面給出了第一類和第二類斯特林數在棋盤中的組合意義,所以嘗試用這個組合意義來證明反演公式。
構造了一個神奇雙射,然后一波操作發現可以給 \(x,y\) 都減一且答案不變,然后到 \(x=0\) 就顯然為 0 了。不想寫了。
6.3 棋盤等價類
稱兩個棋盤等價當且僅當每個棋盤數都相等,即棋盤多項式相等。
對於 Ferrers 棋盤 \(S=F(a_1,\cdots,a_n)\) ,在前面補 0 使得 \(n=|S|+1\) 。現在定義可重集 \(B_S=\{b_{S,1}=a'_1,b_{S,2}=a'_2-1,\cdots,b_{S,|S|+1}=a'_{|S|+1}-|S|\}\) ,那么兩個 Ferrers 棋盤等價當且僅當它們的 \(B\) 相等。
由下降冪棋盤多項式分解定理,這很顯然。
容易發現 \(b\) 全都是非正的。設 \(k=-\min_i b_{S,i}\) ,那么可重集就可以被表示成 \(0^{c_0}(-1)^{c_1}\cdots(-k)^{c_k}\) 。因為相鄰兩個 \(b\) 最多減一,所以 \(c\) 全部為正。
另外 \(b\) 要滿足什么限制才能對應回一個 Ferrers 棋盤?一個是里面的元素非負,另一個是 \(b_{i+1}\ge b_i-1\) ,最后是 \(\sum_i b_i=|B|-1-{|B|(|B|-1)\over 2}\) 。
對任意一個非空 Ferrers 棋盤 \(S\) ,存在恰好一個沒有空列的嚴格增 Ferrers 棋盤與之等價。不難通過 \(c\) 構造出這么一個棋盤。
最后,對於一個合法的可重集 \(0^{c_0}(-1)^{c_1}\cdots(-k)^{c_k}\) ,有幾個 Ferrers 棋盤與之對應?
唯一需要考慮的限制是 \(b_{i+1}\ge b_i-1\) 。從大到小加入數,加入 \(x\) 時每一段 \(x\) 的前面一個位置必須是 \(x+1\) ,所以容易得到方案數
6.4 分解定理的變體
定義兩個與棋盤數類似但不同的量。
定義 \(m\) 階 \(k\)-棋盤數:對於棋盤 \(S\) 和正整數 \(m\) ,從下往上每 \(m\) 行分成一個行組,那么定義一個合法的放棋子方案為任意兩個棋子不在同一列且不在同一行組的方案。設放 \(k\) 個棋子的方案數為 \(r_{m,k}(S)\) 。
其中 \(x^\underline{n,m}=\prod_{i=0}^{n-1}(x-im)\) 。
這個公式也不難理解,就是加上 \(x\) 行,然后同一組的零散部分統一分配。我們強制 \(m|x\) 且足夠大。
另外一個定義感覺挺牽強的,不管。
顯然 \(\alpha\) 沒啥用,可以假裝 \(\alpha=-1\) 。如果 \(a\) 單調不降那么就是算棋盤多項式,但可惜並不是。
然而我們有取模,而給一個位置加上若干個 \(mod\) 並不會影響答案,所以可以調整之后再做。
再注意到求答案的式子中給一個位置減去若干個 \(mod\) 也不會影響答案,所以其實什么都不用做。
由於干這兩樣事情與 \(mod\) 是啥無關,所以其實就是正確答案。
綜上,只需要假裝 \(a\) 是單調不降的,用原來的方法算棋盤多項式即可。
7 排列降低計數
顯然排列 \(\text{Sym}(n)\) 和 \(R_n(B_n)\) 之間可以建立雙射。但是降低對與相鄰兩個位置有關,所以不是很好計數。
下面是一個牛逼的變換,把降低與超過建立了關系。
7.1 Foata 第一基本變換
其實是個比較直觀的變換,可以把超過變成降低。
連邊 \(i\to p_i\) ,然后嘗試構造一個新的排列,使得 \(p_i\) 恰好在 \(i\) 的前面,這樣就轉化為降低了。
當然顯然不可能使得所有都成立,但是這個變換使得該成立的都成立了。
逆變換則是把前綴最大值取出來,然后亂搞。
於是我們有
超過計數也可以轉化為降低計數,所以容易發現
而 \(h\) 可以再容斥一下變成 \(r\) ,於是就得到了式子
7.2 k-超過數計數
由於 k-超過數 對應的棋盤滿足任意兩個位置不同行同列,所以直接有
然后直接容斥,得到
另外,考慮這樣一個增量法:從 \(\pi\in \text{Sym}(n-1)\) 推到 \(\pi'\) ,可以先把 \(n\) 放在最后,然后在前面選擇一個 \(i\) ,交換 \(\pi_i\) 和 \(\pi_n\) 。
對於 \(0\le k<n,p\ge 1\) , \(P_{n,k,p}\) 滿足一個丑陋的遞推式
在 \(0\le k<n,p=0\) 時則有 \(P_{n,k,0}=(n-1)P_{n-1,k,0}+(n-k-1)P_{n-2,k,0}\) 。前者是隨便找一個位置換過去,而后者是 \(P_{n-1,k,1}\) 。把 \(P_{n-1,k,1}\) 命中的格子所在的行列刪掉,就得到了 \(P_{n-2,k,0}\) ,而從后者推到前者則有 \(n-k-1\) 中方法。
另外,直接考慮最后 \(k\) 個位置放了什么,可以得到
另外,顯然有
7.3 X-Y 降低計數
顯然這兩者也可以換來換去。
X-Y 超過數很容易轉化到棋盤上,並且就是 \(St_n\) 刪掉一些行列,一番操作也可以得到 Ferrers 棋盤。
然后好像沒有太多內容了。
8 Ferrers 棋盤的排列逆序對計數
8.1 k-棋盤數的 q-analogue 形式
對於一個排列,把每一個點的右邊和下面染黑,那么順序對的個數就是未被染黑的格子數。容易找到它們之間的一一對應關系。
所以逆序對也很容易確定。
對於棋盤 \(S\) 和一個方案 \(T\subseteq S\) ,定義 \(val_S(T)\) 為對 \(T\) 染色之后 \(S\) 中還沒有被標記的格子個數,定義 \(C_S(T)\) 為這樣的格子的集合。
8.2 q-analogue 形式下的分解定理
(然而這里並不是關於 \(x\) 的多項式,所以不是很好證。)
但是 \(x\) 是自然數的時候比較簡單。還是用一樣的方法,在下面多加 \(x\) 行。然后這個式子挺顯然的。
特別地,有
9 Ferrers 棋盤的排列環數計數
數環的個數。也可能可以夾帶私貨,把鏈也一塊包括。
然而環和棋盤看起來毫無關系……
9.2 有向圖的覆蓋多項式
顯然一個棋盤可以和一個鄰接矩陣對應,也就可以對應到一個可以有自環、無重邊的有向圖。
這個挺顯然的。
因為行列保留的是一樣的集合,所以把它轉成有向圖之后就是要求每個導出子圖的覆蓋多項式 \(C(G,x,1)\) 。
把一個點集組成環和組成鏈的方案數都先求出來,然后拼在一起求幾何冪級數的 \(\exp\) 。但是我們還關心鏈的個數,所以直接做是需要對二元函數做 \(\exp\) 的,比較爆炸。可以算點值,最后插值,消掉鏈的個數這一維。
9.3 Ferrers 棋盤覆蓋多項式分解定理
像之前一樣,很容易把一個放車的方案對應到一個編號范圍為 \(\mathbb{Z}\) 的有向圖上,並且這個有向圖只有環和鏈。
注意每一列的高度可能很高。但是這不重要,因為如果連到了大於 \(n\) 的位置就一定不會再有出邊了。
可以看做每個環帶一個 \(y\) 的權值,並且在棋盤下面加陰間 \(x\) 個編號為負數的行,然后強制拿滿。
用類似 UOJ597 的做法,可以得到
9.4 分解定理在減 Ferrers 棋盤上的拓展
上面的正確性依賴於:對於 \(i<j\) ,如果存在邊 \((i,j)\) ,那么一定存在邊 \((j,i)\) 。但在減 Ferrers 棋盤上不存在這個性質。
但是論文告訴我們,可以強行把棋盤變成豎直型減 Ferrers 棋盤,使得覆蓋多項式不變,且兩個棋盤的環和鏈之間還存在一一對應關系。
不是很想看了,跑了跑了。也可以去看 UOJ597 。