幾個小 trick

g1ove發表於2024-04-06

這是我在這次 LG 月賽中領悟到的。

關於 T4

T4 讓我們構造一個東西,在 \(\mod 998244353\) 的情況下。

然後你就很像把 \(0\) 給搞進去,發現不合理。

這時候怎麼辦?

可以把 \(0\) 變成 \(998244353\) !這樣就行了。
很厲害,給我上了一課。

關於 T5

這啟示我們往一類問題思考。

主要問題是這樣的:長度為 \(n\) 的序列,一直不下降,可以相等,最後一個元素是 \(m\) ,問方案數。

考慮 dp 很快就能寫出轉移式。再加上字首和最佳化,時間複雜度是平方級別。

可惜,筆者太菜了,後面往組合數學方向思考,沒有任何結果。

最後一小時,發現 dp 可以最佳化成這個式子:

\[f_{i,j}=f_{i-1,j}+f_{i,j-1} \]

你可以從兩個方向思考:

Trick 1

這個式子其實是路徑問題。
轉化一下,就是從 \((1,1)\)\((n,m)\) 只能向下、向右走,到終點方案數。
我們把路徑行走記下來,向右就是 \(1\) ,向下就是 \(0\)
然後 \(1\)\(0\) 數量固定。
所以捏,這相當於,把 \(n\)\(1\)\(m\)\(0\) 排列後不同的排列數。
經典問題,式子出來:\(C_{n+m}^n=C_{n+m}^m\)

Trick 2

這就是一個楊輝三角,我們把它轉 \(45°\)
然後遞推式不就出來了嗎。
根據組合數的理解,你能很快求出某列、某行,甚至某一斜對角線的值。
真是公公又式式!

後話

筆者太菜,最終也是衝刺了一波才到了 rk47.

相關文章