在n×n的棋盤裡面放k個國王,使他們互不攻擊,共有多少種擺放方案。國王能攻擊到它上下左右,以及左上左下右上右下八個方向上附近的各乙個格仔,共8個格仔。
注:資料有加強(2018/4/25)
只有一行,包含兩個數n,k ( 1 <=n <=9, 0 <= k <= n * n)
所得的方案數
輸入 #1複製
3 2
輸出 #1複製
16題目**洛谷p1896/四川省選
有點像八皇后 但是看資料範圍應該可以用狀壓dp上**
#include#includeusing
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...