c n皇后問題

2022-05-01 11:36:11 字數 671 閱讀 2277

會下西洋棋的人都很清楚:皇后可以在橫、豎、斜線上不限步數地吃掉其他棋子。如何將8個皇后放在棋盤上(有8 * 8個方格),使它們誰也不能被吃掉!這就是著名的八皇后問題。

乙個整數n( 1 < = n < = 10 )

每行輸出對應一種方案,每種方案順序輸出每一行皇后所在的列號,相鄰兩數之間用空格隔開,按字典序輸出。如果不存在對應的方案,輸出-1。

4
2 4 1 3

3 1 4 2

#include using namespace std;

bool used[11];

int g[11][11];

int n;

bool flag=0;

bool check(int x,int y)

x = xx,y = yy;

while(x >= 1&&y <= n)

return 1;

}void dfs(int u)

}printf("\n");

flag = 1;

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

if(used[i] == 0&&check(u,i) == 1)

}int main()

C N皇后問題

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

DFS 回溯與剪枝 C N皇后問題

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

問題 I n皇后問題

在n n 格的棋盤上放置彼此不受攻擊的n 個皇后。按照西洋棋的規則,皇后可以攻擊與之處在同一行或同一列或同一斜線上的棋子。n後問題等價於在n n格的棋盤上放置n個皇后,任何2 個皇后不放在同一行或同一列或同一斜線上。設計乙個解n 後問題的佇列式分支限界法,計算在n n個方格上放置彼此不受攻擊的n個皇...