藍橋 BASIC 27 2n皇后問題

2021-08-01 20:35:49 字數 987 閱讀 7320

acm模版

一道水題,本來不打算寫,但是發現是經典的8皇后問題的延伸,感覺挺不錯的,所以寫寫玩……想當初最開始學習 dfs 就是通過八皇后問題來學習的。

依然是逐行判斷,不過需要同時放兩個皇后才能繼續深入搜尋……

#include 

#include

#include

#include

using

namespace

std;

const

int maxn = 10;

intmap[maxn][maxn];

int visb[maxn];

int visw[maxn];

int n;

int cnt = 0;

bool charge(int row, int col, int tag)

if (tag == 2 && visb[col])

if (tag == 3 && visw[col])

for (int i = 0; i < n; i++)}}

for (int i = -n + 1; i < 0; i++)}}

return

true;

}void dfs(int row)

// cout << '\n';

// }

return ;

}for (int i = 1; i <= n; i++)

}map[row][i] = 1;

visb[i] = 0;}}

}int main()

}dfs(1);

cout

<< cnt << '\n';

return

0;}

藍橋 BASIC 27 2n皇后問題

基礎練習 2n皇后問題 問題描述 給定乙個n n的棋盤,棋盤中有一些位置不能放皇后。現在要向棋盤中放入n個黑皇后和n個白皇后,使任意的兩個黑皇后都不在同一行 同一列或同一條對角線上,任意的兩個白皇后都不在同一行 同一列或同一條對角線上。問總共有多少種放法?n小於等於8。輸入格式 輸入的第一行為乙個整...

藍橋杯 BASIC 27 基礎練習 2n皇后問題

問題描述 給定乙個n n的棋盤,棋盤中有一些位置不能放皇后。現在要向棋盤中放入n個黑皇后和n個白皇后,使任意的兩個黑皇后都不在同一行 同一列或同一條對角線上,任意的兩個白皇后都不在同一行 同一列或同一條對角線上。問總共有多少種放法?n小於等於8。輸入格式 輸入的第一行為乙個整數n,表示棋盤的大小。接...

藍橋杯 2n皇后問題

問題描述 給定乙個n n的棋盤,棋盤中有一些位置不能放皇后。現在要向棋盤中放入n個黑皇后和n個白皇后,使任意的兩個黑皇后都不在同一行 同一列或同一條對角線上,任意的兩個白皇后都不在同一行 同一列或同一條對角線上。問總共有多少種放法?n小於等於8。輸入格式 輸入的第一行為乙個整數n,表示棋盤的大小。接...