【做題記錄】計數 DP
阿新 • • 發佈:2021-08-23
(直播賀題)
\(\text{Gerald and Giant Chess}\)
假設有一個 \(h\) 行 \(w\) 列的棋盤,棋盤上的格子有的是可以經過的,有的是不可以經過的。一開始在棋盤的左上角(第一行第一列)有一顆棋子,這顆棋子每次只能往右或者往下移動一格。那麼要將其從起點移動到右下角 \((h,w)\) 一共有多少種移法?
無限制下,從點 \((x_1,y_1)\) 向下或向右移動到 \((x_2,y_2)\) 的方案與在長度 \(x_2-x_1+y_2-y_1\) 的序列中放 \(x_2-x_1\) 個 \(0\) 和 \(y_2-y_1\) 個 \(1\) 的方案存在一一對映,即向下對應 \(0\)
考慮每個非法的方案,對應一個最先經過的黑點,因此考慮在第一次經過某個黑點時計數。定義狀態 \(dp_i\) 代表目前在黑點 \(i\) 且以前未經過其它黑點的方案數,用總方案減去非法方案,而方案對應著最先經過的黑點,因此有轉移方程
\[dp_i=\binom{x_i-x_0+y_i-y_0}{x_i-x_0}-\sum_{x_j\le x_i\land y_j\le y_i}\binom{x_i-x_j+y_i-y_j}{x_i-x_j}dp_j \]\(\square\)
\(\text{Roman and Numbers}\)
數 \(x\) 被視作接近於數 \(n\) 對 \(m\) 取模,當滿足條件:
- 它可以通過數 \(n\) 的數字重新排列而得到;
- 它沒有任何的前導 \(0\);
- 數 \(x\) 被 \(m\) 除的餘數等於 \(0\)。
找出有多少個數接近於 \(n\) 對 \(m\) 取模。