total submission(s) : 83 accepted submission(s) : 40
problem description
在n*n的方格棋盤放置了n個皇后,使得它們不相互攻擊(即任意2個皇后不允許處在同一排,同一列,也不允許處在與棋盤邊框成45角的斜線上。
你的任務是,對於給定的n,求出有多少種合法的放置方法。
input
共有若干行,每行乙個正整數n≤10,表示棋盤和皇后的數量;如果n=0,表示結束。
output
共有若干行,每行乙個正整數,表示對應輸入行的皇后的不同放置數量。
sample input
1850
sample output
19210
author
cgfsource
2008 hznu programming contest
簡單題意:
由於是中文題,所以這裡不再多說。
解題思路形成過程:
典型的dfs深搜題目,寫出深搜演算法就得以實現了。也就是考慮皇后放置的位置。對於每一行,需要列舉每個可以放置皇后的位置,並且需要判斷當前位置(第i行)是否滿足條件(即判斷這個位置是否與放置好的前i-1行的皇后的位置相衝突).如果衝突,則位置不合適;否則的話,就可以列舉下一行皇后的位置,直至問題的結束。
感想:還是得用搜尋,深度搜
#include
#include
int n,tmp;
int map[11];
void dfs(int k)
else
}if(flag)
dfs(k+1);}}
}int main()
while(scanf("%d",&m),m)
return 0;
}
1019 N皇后問題
1019 n皇后問題 題意 在n n的方格棋盤放置了n個皇后,使得它們不相互攻擊 即任意2個皇后不允許處在同一排,同一列,也不允許處在與棋盤邊框成45角的斜線上。對於給定的n,求出有多少種合法的放置方法。思路 考慮皇后放置的位置,對於每一行,需要列舉每個可以放置皇后的位置,而且需要判斷當前位置 第i...
1019 N皇后問題
problem description 在n n的方格棋盤放置了n個皇后,使得它們不相互攻擊 即任意2個皇后不允許處在同一排,同一列,也不允許處在與棋盤邊框成45角的斜線上。你的任務是,對於給定的n,求出有多少種合法的放置方法。input 共有若干行,每行乙個正整數n 10,表示棋盤和皇后的數量 如...
N皇后問題
include define maxqueens 20 define minqueens 4 enum bool typedef struct queendata queendata queendata queens maxqueens 1 int ncount init int init chec...