在n×n的棋盤裡面放k個國王,使他們互不攻擊,共有多少種擺放方案。國王能攻擊到它上下左右,以及左上左下右上右下八個方向上附近的各乙個格仔,共8個格仔。
注:資料有加強(2018/4/25)
只有一行,包含兩個數n,k ( 1 <=n <=9, 0 <= k <= n * n)
所得的方案數
輸入 #1複製
3 2
輸出 #1複製
16題解:詳見洛谷,因為不熟,so複製來的題解,但是看懂
#include#include#include
#include
#include
#include
#include
using
namespace
std;
intn,k;
long
long dp[10][15000][80
]; long
long state[777777] , king[77777
] ;long
long
ans , sum;
inline
void
inte()
}} int
main()
for(int i = 1; i <= n ; i++)
for(int j = 1 ; j <= ans ; j++)
sum +=dp[i][j][k];
cout
0;
}
洛谷 1896 互不侵犯 new
在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的一般套...