lg組合計數

haozexu發表於2024-08-09

組合計數

關於記號

\[C_n^m={n\choose m}=A_n^m/m!=n^{\underline{m}}/m! \]


插板法

  • 插板法:分集合問題 \(\iff\) 不定方程正整數解計數問題

    \[{n-1\choose m-1} \]

    創造條件法(構造雙射),即,構造元素集合 \(A,B\),以及一個 \(A,B\) 之間的雙射 \(f\),則把計數 \(A\) 變成計數 \(B\)

    如果允許集合為空,則問題可以轉化為新增 m 個球時不允許為空的問題

  • 不定方程解計數:有上界。難以處理,可以採用容斥。列舉幾個大於限制,則能夠求出至少 \(i\) 個大於 \(k\)

    基本容斥思想:總共減去不符合的等於答案==交集等於全集減補集並集

    \[\begin{aligned} \]

&+(-1)^{m-1}\sum_{a_i<a_{i+1} }\left|\bigcap_{i=1}{m}S_{a_i}\right|+\cdots+(-1)|S_1\cap\cdots\cap S_n|
\end{aligned}

\[ - 問題4:容斥思想2:恰好等於k==(<=k)-(<=k-1) ## Catalan和折線法 - 格路計數:**構造雙射** 路線<==>操作序列 - 括號匹配問題:**構造雙射** 括號序列<==>左括號是向右走,右括號是向上走 **定理 合法括號序列的充分必要條件** > 一個括號序列是合法括號序列,當且僅當它滿足: > > - 對於所有字首,左括號數量大於等於右括號數量 > > - 對於整個序列,左括號數量等於右括號數量 這在轉化後的問題上等價於不碰到 y=x+1 並走到 (n,n) 考慮計數不符合的路徑,發現這些路徑都滿足與 y=x+1 有交點 那麼這些路徑沿著交點翻折,則可以證明這些不合法路徑與到達 (n-1,n+1) 的所有路徑構成雙射,從而容斥一步,得到 Catalan 數的定義。 \]

H_n = \binom{2n}{n} - \binom{2n}{n-1}

\[ 本方法叫做 **折線容斥** ![](https://img2023.cnblogs.com/blog/2950259/202408/2950259-20240809120758187-1777564574.png) - [JLOI2015] 騙我呢:性質1:每行都有恰好一個 [0,m] 中沒有出現 ![](https://img2023.cnblogs.com/blog/2950259/202408/2950259-20240809120800180-73514330.png) 式子的係數很簡單,則可以 **在網格圖上畫出轉移**,可轉化為不碰到兩條直線的路徑數。 ## Stirling 類似 dp 思路 - 第一類 Stirling 數:求把 $n$ 個不同元素構成 $m$ 個非空圓排列的方案數。 第二類 Stirling 數 :求把 n 個不同元素劃分 m 個非空子集的方案數 \]

\def\stira#1#2{\begin{bmatrix}#1\ #2\end{bmatrix}}
\def\stirb#1#2{\begin{Bmatrix}#1\ #2\end{Bmatrix}}
\stira{n}{k}=\stira{n-1}{k-1}+(n-1)\stira{n-1}{k}\
\stirb{n}{k}=\stirb{n-1}{k-1}+k\stirb{n-1}{k}

\[ dp 思想:第一類乘上 n-1 是因為把它放在某一個元素的左邊,第二類乘上 k 是因為前面集合不區分順序 - 普通冪轉下降冪公式: \]

\def\stira#1#2{\begin{bmatrix}#1\ #2\end{bmatrix}}
\def\stirb#1#2{\begin{Bmatrix}#1\ #2\end{Bmatrix}}
mn=\sum_{i=0}m{\stirb{n}{i}m^{\underline{i}}}

\[ 組合意義易證。注意這個求和的上標,只要大於 $\min\{n,m\}$ 即可(要麼就是集合不夠要麼就是元素不夠) - CF1278F Card 推推推推推推推推推 - 自然數冪和: 需要一個 **上指標求和公式** : \]

\sum_{i=0}^n{i\choose k}={n+1\choose k+1}

\[ 證明1 該問題可以與 $n+1$ 個元素的 $k+1$ 大小子集個數建立雙射,原因如下: \]

{n+1\choose k+1}=\sum_{i=1}^{n+1} { i-1\choose k}=\sum_{i=0}^{n} { i\choose k}

\[ 以上求和的意義是列舉其中一個元素的位置。 證明2 當然上述公式求和的下標還可以改為 $i=k$ ,此時補充一個 ${k\choose k+1}$ (?) 證明3 按照遞推公式依次展開可以得到。 - 自然數冪和-拉格朗日插值 $n+1$ 個點值可以唯一確定一個 $n$ 次多項式。使用: \]

f(x) = \sum_{i=1}^{n} \prod_{j\neq i }\frac{x-x_j}{x_i-x_j} y_i

\[ 將點值帶入易證 ![](https://img2023.cnblogs.com/blog/2950259/202408/2950259-20240809120801501-177763048.png) ## 其他模型 - AGC013D:轉化問題是比較容易的。重複處理:對於所有平移可以產生的重複方案,我們強制其“貼邊界”(即曾經到底過0)才記錄答案,考慮設 ![](https://img2023.cnblogs.com/blog/2950259/202408/2950259-20240809120802790-352985691.png) - CF1895F:關鍵轉化:**弱化限制/差分法** ![](https://img2023.cnblogs.com/blog/2950259/202408/2950259-20240809120803977-1713188252.png) 正確性顯然。 條件2讓我們想到差分陣列,該條件可以轉化為差分陣列取值在 $[-k,k]$ 之內 現在還需要表達最小值的限制,我們可列舉最小值的限制,配合計算差分陣列的數量,可以知道這一部分答案是 $(x+k)(2k+1)^{n-1}$ 對於最大值那一部分的答案,考慮 $x$ 很小,設 $f_{i,j}$ 表示填了 $i$ 個數,最後一個是 $j$ ,可以矩陣快速冪計算。 \]

相關文章