2019 8 31 互不侵犯

2022-05-08 20:09:05 字數 696 閱讀 1686

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

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

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

所得的方案數

輸入 #1複製

3 2

輸出 #1複製

16

題目**洛谷p1896/四川省選

有點像八皇后 但是看資料範圍應該可以用狀壓dp

上**

#include#include

using

namespace

std;

long

long n,k,dp[15][2050][205],sc[2050],num[2050

];long

long

ans,cnt;

long

long getnum(long

long

x)int

main()}}

for(long

long i=1;i<=cnt;i++)ans+=dp[n][i][k];

printf(

"%lld

",ans);

return0;

}

題解 互不侵犯

僅僅是筆者對於狀態壓縮類 dp 的初步練習吧。題目鏈結 題目大意 給定乙個 n n 的棋盤,在棋盤上放國王,國王的攻擊範圍是它周圍的八個格仔。求放 k 個國王的合法方案數。本題很像八皇后問題,但是由於搜尋狀態數量太多導致搜尋會超時。我們考慮一下 dp 先考慮狀態設計 裡面首先要包含當前使用的國王數,...

scoi 互不侵犯 king

time limit 10 sec memory limit 162 mb 在n n的棋盤裡面放k個國王,使他們互不攻擊,共有多少種擺放方案。國王能攻擊到它上下左右,以及左上左下右上右下八個方向上附近的各乙個格仔,共8個格仔。只有一行,包含兩個數n,k 1 n 9,0 k n n 方案數。3 216...

互不侵犯的king

第二次做這道題,感覺思路清晰了很多 附上蒟蒻的 include define re return define st static define mem a,b memset a b sizeof a define min a,b a b a b define max a,b a b a b def...