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 在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有差別。要求擺放時隨意的兩個棋子不能放在棋盤中的同...