hdu 2553 N皇后問題

2021-07-30 14:29:11 字數 718 閱讀 3008

在n*n的方格棋盤放置了n個皇后,使得它們不相互攻擊(即任意2個皇后不允許處在同一排,同一列,也不允許處在與棋盤邊框成45角的斜線上。

你的任務是,對於給定的n,求出有多少種合法的放置方法。

input

共有若干行,每行乙個正整數n≤10,表示棋盤和皇后的數量;如果n=0,表示結束。

output

共有若干行,每行乙個正整數,表示對應輸入行的皇后的不同放置數量。

sample input

1 8 5 0

sample output

1 92

10 很經典的一道題目

思路:按行擺放,這樣就不會出現一行擺放多個旗子的情況

會方便很多

#include 

#include

#include

#include

using

namespace

std;

///思路是按行來擺放旗子

int n,num;

int c[100];///c[i]代表第i行放的皇后的列

bool intsert(int cur)///cur代表當前行

void dfs(int cur)

for(int j=1; j<=n; j++)

}}int main()

while(cin>>m&&m)

}

HDU 2553 N皇后問題

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

HDU 2553 N皇后問題

復健。一題經典的回溯法,要打表。include define max n 11 int n,res int c max n ans max n void dfs int cur if flag dfs cur 1 int main int m while scanf d m m printf d n...

HDU 2553 N皇后問題

題目資訊 一種非常有用的二進位制優化方法 hdu2553n皇后問題 problem description 在n n的方格棋盤放置了n個皇后,使得它們不相互攻擊 即任意2個皇后不允許處在同一排,同一列,也不允許處在與棋盤邊框成45角的斜線上。你的任務是,對於給定的n,求出有多少種合法的放置方法。in...