Luogu P1350 車的放置

2022-06-13 13:54:10 字數 608 閱讀 6062

題目給定乙個畸形的方塊,求在上面放 \(k\) 個車能讓它們互不相吃的方案數。

我們知道,車能夠吃掉它這一行和一列的棋子,先來處理吃一行的情況。其實這個特別簡單,在列舉的時候每一行只算乙個棋子的就好了。

再處理列的情況。我們設 \(f_\) 表示 \(i\) 行裡一共有 \(j\) 個車的方案數。每次處理時,第 \(i\) 行就是第 \(i-1\) 行的方案數乘上這一行還可以放的位置個數。那麼這個位置個數是什麼呢?因為前 \(i-1\) 行放了 \(j-1\) 互不相吃的棋子(也就是每列只有乙個車),那如果我們還要在第 \(i\) 行放乙個,它就只能放在剩下的位置,也就是 \(m - (j - 1)\) 個位置,其中的 \(m\) 表示第 \(i\) 行的格仔個數。

也就是說轉移方程為:

\[f_=f_\times (m-j+1)+f_

\]後面還加個 \(f_\) 是因為第 \(i\) 行還可以不放任何車。

for (int i = 0; i <= b + d; i++) f[i][0] = 1;

for (int i = 1; i <= b + d; i++) }

printf("%d\n", f[b + d][k]);

洛谷1350 車的放置

題目描述 有下面這樣的乙個網格棋盤,a,b,c,d表示了對應邊長度,也就是對應格仔數。當a b c d 2時,對應下面這樣乙個棋盤 要在這個棋盤上放k個相互不攻擊的車,也就是這k個車沒有兩個車在同一行,也沒有兩個車在同一列,問有多少種方案。同樣只需要輸出答案mod 100003後的結果。輸入輸出格式...

P1350 車的放置

有下面這樣的乙個網格棋盤,a,b,c,d表示了對應邊長度,也就是對應格仔數。當a b c d 2時,對應下面這樣乙個棋盤 要在這個棋盤上放k個相互不攻擊的車,也就是這k個車沒有兩個車在同一行,也沒有兩個車在同一列,問有多少種方案。同樣只需要輸出答案mod 100003後的結果。輸入格式 輸入檔案pl...

洛谷 P1350 車的放置

洛谷 p1350 車的放置 有下面這樣的乙個網格棋盤,a,b,c,d表示了對應邊長度,也就是對應格仔數。當a b c d 2時,對應下面這樣乙個棋盤 要在這個棋盤上放k個相互不攻擊的車,也就是這k個車沒有兩個車在同一行,也沒有兩個車在同一列,問有多少種方案。同樣只需要輸出答案mod 100003後的...