#include
#include
using
namespace std;
int n, map[8]
[8], ans;
//定義n為棋盤大小n*n矩陣,定義陣列二維map來儲存是否可以放黑白皇后,1為可以,0反之
int bq[8]
, wq[8]
;//定義bq,wq分別用於儲存 在每一行都在哪乙個位置擺放了黑(black queen)。白皇后 (write queen)
intwq
(int k)
//擺放白皇后
int i, j;
for(i =
0; i < n; i++)if
(j == k)}}
intbq
(int k)
//擺放黑皇后函式
int i ,j;
for(i=
0;i)//k行i列,開始逐個嘗試擺放皇后(k的變化是通過遞迴實現的,i的變化是通過for迴圈實現的。)
if(j == k)
//如果和前面擺放的所有皇后不衝突,就將第k行擺放位置記錄bq[k] }}
intmain()
}bq(0
);//執行擺放黑皇后函式(當然先擺放白皇后也ok,乙個道理)
cout/輸出可擺放的方法數。
return0;
}
藍橋杯 2n皇后問題
問題描述 給定乙個n n的棋盤,棋盤中有一些位置不能放皇后。現在要向棋盤中放入n個黑皇后和n個白皇后,使任意的兩個黑皇后都不在同一行 同一列或同一條對角線上,任意的兩個白皇后都不在同一行 同一列或同一條對角線上。問總共有多少種放法?n小於等於8。輸入格式 輸入的第一行為乙個整數n,表示棋盤的大小。接...
藍橋杯 2n皇后問題
基礎練習 2n皇后問題 出處問題描述 給定乙個n n的棋盤,棋盤中有一些位置不能放皇后。現在要向棋盤中放入n個黑皇后 和n個白皇后,使任意的兩個黑皇后都不在同一行 同一列或同一條對角線上,任意的兩 個白皇后都不在同一行 同一列或同一條對角線上。問總共有多少種放法?n小於等於8。輸入格式 輸入的第一行...
藍橋杯 2n皇后問題
基礎練習 2n皇后問題 問題描述 給定乙個n n的棋盤,棋盤中有一些位置不能放皇后。現在要向棋盤中放入n個黑皇后 和n個白皇后,使任意的兩個黑皇后都不在同一行 同一列或同一條對角線上,任意的兩 個白皇后都不在同一行 同一列或同一條對角線上。問總共有多少種放法?n小於等於8。輸入格式 輸入的第一行為乙...