感覺這幾個東西挺常用,記錄一下吧。
1.卡特蘭數
假如我們定義 \(C_n\) 表示第 \(n\) 個卡特蘭數。然後我們就有一下幾個式子。
- \(C_n = \dfrac{\dbinom {2n}{n}}{n + 1}\)
- \(C_n = \begin{cases} \sum^n_{i = 1}H_{i - 1}H_{n - i} \ \ n \ge 2 \\ 1 \end{cases}\)
- \(C_n = \dbinom {2n}{n} - \dbinom{2n}{n - 1}\)
例題1 UVA11379
抽象的同學找的題。
首先我們發現這個題目就類似於小奧中的洗盤子問題,這是一個經典的模型,需要用到卡特蘭數。假如說有 \(n\) 個碟子,那麼總共滿足條件的方案數就有 \(C_n\) 種。然後我們考慮第 \(x\) 個圓弧在第 \(j\) 個圓弧後面這個條件怎麼考慮。
我們定義 \(dp_{i,j}\) 為有 \(i\) 個圓弧,然後我們已經確定第 \(j\) 個圓弧的最後一個點的位置。那麼答案就是 \(\sum^j_{k = 1} C_{i - k} \times C_{k - 1}\)。
然後我們考慮如何計算答案。假如說現在第 \(x\) 個圓弧已經把第 \(j\) 個圓弧包住,那麼答案就是 \(dp_{n - j + x,x} \times C_{j - x}\)。這個式子的原因是顯然的,因為我們可以把被 \(x\) 包含住的圓弧和沒有被 \(x\) 包含住的圓弧分開考慮。所以分別有 \(n - j + x\) 和 \(j - x\) 個,但是我們又已經知道 \(x\) 的結尾在 \(j\) 後面,但是起始點在 \(x\) 的結尾的後面的圓弧的情況,那麼答案就是 \(dp_{n - j + x,x} \times C_{j - x}\) 。