A POJ 1321 棋盤問題

2021-09-21 16:11:45 字數 1115 閱讀 5345

description

在乙個給定形狀的棋盤(形狀可能是不規則的)上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一行或者同一列,請程式設計求解對於給定形狀和大小的棋盤,擺放k個棋子的所有可行的擺放方案c。

input

輸入含有多組測試資料。

每組資料的第一行是兩個正整數,n、k,用乙個空格隔開,表示了將在乙個n*n的矩陣內描述棋盤,以及擺放棋子的數目。 n <= 8 , k <= n

當為-1 -1時表示輸入結束。

隨後的n行描述了棋盤的形狀:每行有n個字元,其中 # 表示棋盤區域, . 表示空白區域(資料保證不出現多餘的空白行或者空白列)。

output

對於每一組資料,給出一行輸出,輸出擺放的方案數目c (資料保證c<2^31)。

sample input

2 1

#. .#

4 4

…# ..#.

.#..

#… -1 -1

sample output2 1

用dfs就可以,#是可以放棋子的地方,忽視掉 . ,當成空白即可。

#include

#include

int n,k,ans,e;

int lie[9];

char

map[9][9];

void dfs(int i)

if(i>=n+1)

return;

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

}dfs(i+1);

}int main()

getchar();//不能去掉,否則回車會被讀入陣列

}e=0;

ans=0;

dfs(1);

printf("%d\n",ans);

}return

0;}

寫的時候兩個地方沒有注意,一是回車被讀入陣列,而是自己定義的是全域性變數一組資料算完後沒有歸零,導致一直wa,浪費很多時間。

1321棋盤問題

錯了好幾次,for j 1 j n j for i 1 i n i 一開始我沒有考慮到有可能它的點又可以能中間空掉,所以從0到n一直找 比如這個資料他就會出錯 2 2經過修改,這個資料他也會通過 我的 include iostream include string.h include algorit...

POJ 1321 棋盤問題

time limit 1000ms memory limit 10000k total submissions 7007 accepted 3390 description 在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一行或者同一列...

poj 1321 棋盤問題

棋盤問題 time limit 1000ms memory limit 10000k total submissions 15365 accepted 7600 description 在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一...