poj 1321 棋盤問題 dfs

2021-07-27 17:07:11 字數 516 閱讀 7975

解題思路:與經典八皇后問題類似,但有一點不一樣,因為此題的棋盤形狀不定,故需要遍歷整個區域,進行判斷是否屬於能放棋子的位置

# include # include # define m 10

char map[m][m];

int visrow[m]; //該行是否有棋子

int viscol[m]; //該列是否有棋子

int count;

int n, k;

bool isok(int x, int y) // 判斷一行或一列上是否有棋子

else }

void dfs(int cur, int step)

for (int i = cur; i < n; i++) //遍歷整個區域,知道找到棋盤

} }}

int main(void)

dfs(0, 0);

printf("%d\n", count);

} return 0;

}

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