藍橋杯2n皇后問題(詳細注釋版)

2021-10-03 18:18:10 字數 726 閱讀 9599

#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。輸入格式 輸入的第一行為乙...