題目 :在n*n的方格棋盤放置了n個皇后,使得它們不相互攻擊(即任意2個皇后不允許處在同一排,同一列,也不允許處在與棋盤邊框成45角的斜線上。
你的任務是,對於給定的n,求出有多少種合法的放置方法。
n個皇后,恰號n行,每行放乙個皇后,queue[i]=j即表示第i+1行的皇后正處再第j+1列上,然後皇后位置定下來後,看看會不會攻擊其他皇后,即位置是否合理,出現不合理的情況,就換個位置繼續,若合理,就安排下乙個皇后的位置...
**如下:
#include int n;
int cnt;
int number[10];
int queen[10];
void search(int cur)
}if (ok)
search(cur + 1);
} }}
void pre()
}int main()
return 0;
}
HDU 2553 N皇后問題 回溯法
problem description 在n n的方格棋盤放置了n個皇后,使得它們不相互攻擊 即任意2個皇后不允許處在同一排,同一列,也不允許處在與棋盤邊框成45角的斜線上。你的任務是,對於給定的n,求出有多少種合法的放置方法。include include include using namesp...
hdu 2553 N皇后問題(回溯法)
關鍵在於怎麼判斷主副對角線是否有皇后 j表示縱座標,i表示橫座標。注意這不是數學中那個一般的二維座標系 主對角線易得出j i,所以有 j1 i1 j2 i2 副對角線易得出 j1 i1 j2 i2 詳見 如下 include include includeusing namespace std co...
HDU2553 N皇后問題 DFS 回溯法
problem description 在n n的方格棋盤放置了n個皇后,使得它們不相互攻擊 即任意2個皇后不允許處在同一排,同一列,也不允許處在與棋盤邊框成45角的斜線上。你的任務是,對於給定的n,求出有多少種合法的放置方法。input 共有若干行,每行乙個正整數n 10,表示棋盤和皇后的數量 如...