a - 棋盤問題 poj - 1321
八皇后類似,但略有區別:不一定要放滿n個棋子(我隨便碼的……這都能一次過?!)
就按八皇后思路,每一層兩種選擇,不放棋子/在1-n列中合法的地方放棋子
然後cnt>n即return這個地方第一次沒有寫到,除錯發現會死迴圈才補上的
#include
int n,k,ans;
char map1[10]
[10];
int map[10]
[10];
int vis[10]
;//標記0-n列有無棋子
void
dfs(
int cnt,
int num)
if(cnt>n)
return
;dfs
(cnt+
1,num)
;for
(int j=
0;j}int
main()
} ans=0;
dfs(1,
0);printf
("%d\n"
,ans);}
return0;
}
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 在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一...
POJ 1321 棋盤問題
找到第乙個有 的行開始回溯就可以了 include include using namespace std const int maxn 9 char board maxn maxn bool c maxn int ans,n,k void backtracking int curi,int cnt...