這是我在這次 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.