洛谷 1896 互不侵犯 new

2022-05-26 02:30:12 字數 774 閱讀 7103

在n×n的棋盤裡面放k個國王,使他們互不攻擊,共有多少種擺放方案。國王能攻擊到它上下左右,以及左上左下右上右下八個方向上附近的各乙個格仔,共8個格仔。

注:資料有加強(2018/4/25)

只有一行,包含兩個數n,k ( 1 <=n <=9, 0 <= k <= n * n)

所得的方案數

輸入 #1複製

3 2

輸出 #1複製

16

題解:更新版本的嘻嘻。

#include#include

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long

ll;int

n,k;

ll dp[

13][15002][81

],sum,ans,cnt;

ll st[

787878],ki[78787

];void

init()}}

}void

work() } }

}for(int i=1;i<=n;i++)

for(int j=1;j<=cnt;j++)

ans+=dp[i][j][k];

cout

<}int

main()

洛谷 1896 互不侵犯

在n n的棋盤裡面放k個國王,使他們互不攻擊,共有多少種擺放方案。國王能攻擊到它上下左右,以及左上左下右上右下八個方向上附近的各乙個格仔,共8個格仔。注 資料有加強 2018 4 25 只有一行,包含兩個數n,k 1 n 9,0 k n n 所得的方案數 輸入 1複製 3 2 輸出 1複製 16 題...

互不侵犯(洛谷P1896)

題目 在n n的棋盤裡面放k個國王,使他們互不攻擊,共有多少種擺放方案。國王能攻擊到它上下左右,以及左上左下右上右下八個方向上附近的各乙個格仔,共8個格仔。輸入輸出 輸入n,k,輸出有幾種放置方法。n 9,k n 2 樣例輸入輸出 入 3 2 出 16 這道題看範圍就顯然是狀壓dp了吧。其實這道題和...

洛谷 P1896 SCOI2005 互不侵犯

狀壓dp入門題 狀壓dp一般需要與處理狀態是否合法,節省時間 設定狀態dp i j k 表示第i行第j個狀態選擇國王數為k的方案數 dp i j num j p dp i 1 k p 轉移方程如上,表示第i行第j個狀態國王數量為 num j p 由上一行第k個狀態的p個國王轉移而來 狀壓dp的一般套...