poj 1321(基礎BFS 類似N皇問題)

2021-08-21 07:44:17 字數 555 閱讀 1124

poj - 1321 

題解:在這裡我是用每次處理按行來處理的,這樣在以後的搜尋當中只需樣判斷是否同列就可以了
#include#include#include#include#includeusing namespace std;

#define rep(i,a,b) for(int i=a;i<=b;i++)

int n,k;

char e[10][10];//儲存棋盤

int v[10];//表示每一次的列是否有棋子

int sum=0;//用來計所有的情況

void dfs(int i,int step)

else if(i>n)

return ;

else}}

dfs(i+1,step);//這一步一定要有,否則會缺少情況的

return ;

}int main()

}dfs(1,0);//從第一列開始

cout<}

return 0;

}

poj1321解題報告

哎哎.對自己還是蠻失望.剛開始看這個題目知道用dfs 但是就是不知道怎麼處理.糾結了好久,最開始用乙個for 迴圈老得不出正確答案.因為這個dfs有事遞迴呼叫.都不知道錯在 好久之後在看.這裡想到了用乙個兩重迴圈去判斷.第一,我們需要對於棋盤中的每乙個位置考慮,第二因為我們要對當前的乙個位置考慮在這...

棋盤問題 POJ 1321 類似(八皇后)

在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一行或者同一列,請程式設計求解對於給定形狀和大小的棋盤,擺放k個棋子的所有可行的擺放方案c。input 輸入含有多組測試資料。每組資料的第一行是兩個正整數,n k,用乙個空格隔開,表示了將...

Poj 1321 棋盤問題 回溯 類N皇后

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