棋盤問題 poj1321

2022-08-22 04:57:14 字數 535 閱讀 7593

這道題就是簡單的dfs,沒錯,我做了乙個小時。

這道題就是給定乙個棋盤,其中. 是空白的,不能放棋子,#是可以放棋子的位置。放棋子的時候,同一行同一列只能放乙個棋子。

輸入n,k

接著輸入n*n的棋盤,#或者.   ,求有多少種放棋子的方式。

··  dfs(s,kk)表示目前放到了第幾行,放了多少個棋子了。

當然,從dfs(0,0) 開始。

剛開始dfs(i+1,kk++1)寫成了dfs(s+1,kk+1),然後一直tle。

1 #include2 #include3

char map[10][10];4

bool vis[10];5

intans,k,n;

6void dfs(int s,int

kk)7

12for(int i=s;i)19}

20}21}

22int

main()

2334

return0;

35 }

view code

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