n皇后與2n皇后問題

2021-08-20 12:50:02 字數 639 閱讀 4388

題目:在n×n格的棋盤上放置彼此不受攻擊的n個皇后。按照西洋棋的規則,皇后可以攻擊與之處在同一行或同一列或同一斜線上的棋子。n後問題等價於再n×n的棋盤上放置n個皇后,任何2個皇后不妨在同一行或同一列或同一斜線上。

給定棋盤的大小n (n ≤ 13) 

輸出整數表示有多少種放置方法(n=8是時輸出92)

#include#include#includeusing namespace std;

int n;

int map[13]=;//map[0]=1;表示第乙個皇后在第0行,第1列

int count=0;

int v[13][13]=;//列印時將皇后位置記錄

bool isok(int row,int col)//判斷皇后在不在同一列,同一對角線 ,不在同一行通過一行一行搜尋可以排除

;//白皇后位置

int bmap[9]=;//黑皇后位置

int v[9][9];//儲存初始條件

int n;

int ans=0;

bool wisok(int row,int col)//函式作用:判斷白皇后,同一列,同一對角線不能相等

} w_q(0);//先填白皇后

cout<

N皇后 2N皇后問題總結

在n n的方格棋盤放置了n個皇后,使得它們不相互攻擊 即任意2個皇后不允許處在同一排,同一列,也不允許處在與棋盤邊框成45角的斜線上。你的任務是,對於給定的n,求出有多少種合法的放置方法。input 共有若干行,每行乙個正整數n 10,表示棋盤和皇后的數量 如果n 0,表示結束。output 共有若...

八皇后 n皇后 2n皇后

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

2n皇后問題

問題描述 在n n的矩陣中放入n個白皇后和n個黑皇后,該矩陣由元素 和 組成,代表該位置不能放皇后,代表可以放皇后,n個的皇后兩兩不能在同一行和同一列以及同一對 角線上,n個黑皇后兩兩不能在同一行和同一列以及同一對角線上。求最多有幾種放法?解法 這個問題跟 皇的問題類似,只不過多了另外一種顏色的皇后...