CF559C Gerald and Giant Chess

2huk發表於2024-11-12

給定一個\(h \times w\) 大小的棋盤,其中有 \(n\) 個點為黑色。

每次只能向右或向下移動,求從 \((1,1)\) 不經過黑色點到達 \((h, w)\) 的方案數。

\(f(i)\) 表示到達第 \(i\) 個黑點的方案數,且在這之前都沒有經過黑點。

考慮補集。求有多少種方案經過了至少一個黑點。

列舉第一個黑點 \(j\)。需要滿足 \(x_j \le x_i,y_j \le y_i\)。那麼:

\[f(i) = \dbinom{x_i+y_i-2}{x_i-1} - \sum_{x_j \le x_i, y_j \le y_i}f(j) \times \dbinom {x_i-x_j+y_i-y_j}{x_i-x_j} \]

強行加入第 \(n + 1\) 個黑點 \((h, w)\)。那麼答案為 \(f(n+1)\)

事實上轉移順序不太好定。所以記憶化搜尋!

https://codeforces.com/contest/559/submission/291158046

相關文章