題目鏈結
最近開始看dfs了,感覺寫的時候還是有點迷,還是得多練。
題意就是 在「#」的地方可以放棋子,問在棋盤上有多少種可以放的方式。
剛開始以為跟八皇后差不多(只是條件少了),後來發現棋子還不一定是跟行數一樣的。
但思路和方法跟八皇后差不多。
ac**如下:
#include
using namespace std;
const
int maxn=
1e3;
int n,m;
string a[maxn]
;//用來存放棋盤。
bool vis[1]
[maxn]
;//用來存放某列的狀態
long
long tot=0;
//用來統計種類的個數
void
dfs(
int x,
int cnt)
//cnt代表行
else
if(cnt==n)
//如果cnt遍歷到最後一行還沒有達到x==m就返回
return
;else}}
}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...