題意:給定限定區域的棋盤,需要在棋盤裡放m個棋子,每個棋子不能在同一行同一列,求放棋子的方案數
思路:根據行來遞迴,每一行列舉每一列,若列沒有被選過則證明可以選,棋子數量加一遞迴下一行,否則棋子數量不變遞迴下一行
#include#include#include#include#includeusing namespace std;
typedef long long ll;
const int maxn = 10;
int n, m, ans, vis[maxn];
char g[maxn][maxn];
void solve(int k, int j)
if (j >= n)
return;
for (int i = 0; i < n; i++)
} solve(k, j+1);
} int main()
ans = 0;
solve(0, 0);
cout << ans << endl;
}}
POJ 1321 棋盤問題(棋盤DFS)
棋盤問題 思路 分層查詢,逐行深搜。注意k n時的處理。1 include 2 include 3 include 4 include 5 include 6 include 7 include 8 include 9 include 10 define ll long long 11 define...
POJ 1321 棋盤問題 DFS
題意 在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一行或者同一列,請程式設計求解對於給定形狀和大小的棋盤,擺放k個棋子的所有可行的擺放方案c。題解 include using namespace std define n 10 bo...
poj 1321 棋盤問題(DFS)
大概題意就是給你乙個棋盤,讓你放棋子,求在棋盤n n上的 放上k個棋子的所有情況的數目。要求擺放時任意的兩個棋子不能放在棋盤中的同一行或者同一列。深搜可以搜尋出所有答案。直接看 include includebool chess 9 9 bool vis col 9 int n,k,ans void...