poj 1321 棋盤問題

2021-09-12 22:24:40 字數 713 閱讀 8036

**

這個題應該是到dfs水題了 #為可放棋子點 整體思路就是深搜每次逐行查詢 逐行查詢就保證了每行只有乙個棋子 並開乙個陣列記錄這每一列上是否有棋子 類似c[i]=1 就是第i列存在棋子 0則反之 ; 結束遞迴的條件很簡單就不多費口舌了

因為這個題最大資料才8 所以可直接暴搜

提供組資料

8 8########

########

########

########

########

########

########

########

40320

上**

#include

#include

using namespace std;

char ch[15]

[15];

int c[15]

;int n,m;

int sum,ans;

void

dfs(

int x,

int k)

if(x>=n)

//防止出邊界

return

;for

(int i=

0;idfs(x+

1,k)

;//沒有放棋子的情況

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