棋盤問題 POJ 1321

2021-09-11 01:58:43 字數 497 閱讀 5825

給出兩個資料n m

給出乙個n*n的棋盤 棋盤上 # 的位置可以放棋子

要求所放棋子不能在同一行或者同一列,要求在棋盤上放置m個棋子

求出共有多少種放置方法

dfs遍歷整個棋盤 當遇到 # 時,轉入下一行,並在此之前,把這一列標記,然後在函式呼叫完之後,把標記撤回。

#include 

#include

#define max_size 10

using namespace std;

char map[max_size]

[max_size]

;bool vis[max_size]

;int cnt,n;

int c=0

;void

dfs(int x,int k

)for

(int i=x;i}}

int main()

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...