1. 程式人生 > 其它 >多校聯訓組合計數、概率期望專題

多校聯訓組合計數、概率期望專題

[AGC005D] ~K Perm Counting

正著不好求,那我直接容斥,用 \(f(i)\) 來表示欽定至少 \(i\) 個地方衝突的方案數。答案就是 \(\sum_{i=1}^n\limits (-1)^i \times f(i)\)

這種排列計數可以對應到這樣的圖上:

所求的排列個數,就等於在這樣的棋盤格子內放 \(n\) 個互不攻擊的車,且陰影格子不能放的方案數。上圖是 \(n=7,k=2\) 的情況。

考慮現在的還有什麼限制,發現同一行同一列的陰影格子還是不能同選。把不能同選的格子連上邊:

\(f_i\) 其實就是這個圖大小為 \(i\) 的獨立集個數。

很明顯這個圖就是若干條鏈,考慮把這些鏈連起來。轉為求從這一排結點中選 \(i\)

個,拼接的位置可以相鄰,其他位置不能相鄰的方案數。於是它變為了一個簡單的 \(\text{DP}\) 問題,\(O(n^2)\) 解決。

點選檢視程式碼

[AGC026D] Histogram Coloring

考慮一個正方形的情況下怎麼做,對於第 \(i\) 層向 \(i+1\) 層轉移時,可以將第 \(i\) 層取反後放在第 \(i+1\) 層,同時,如果第 \(i\) 層是黑白相間的,也可以將第 \(i\) 層原封不動複製到第 \(i+1\) 層,容易發現,這是唯一的兩種方式。