DFS解八皇后

2021-09-26 19:55:30 字數 784 閱讀 3962

我是學習這個部落格的–>八皇后問題(dfs常規解法)

dfs還是用的不太靈活

題目的思路很中重要:

分界線

用一維陣列儲存每一行的列數,從第一行開始深搜,對於每一行i,對從1到8列進行判斷是否符合,符合就加入,然後深搜下一層。

#include

using namespace std;

int s;

int a[10]

;void

dfs(

int i)

for(

int j=

1;j<=

8;j++)}

if(ok)

dfs(i+1)

;}return;}

intmain()

另乙個,不會超時

#include

#include

using namespace std;

int a[20]

;int b[20]

,c[100

],d[

100]

;//記錄列,左對角線,右對角線

int n,s;

int t=0;

void

dfs(

int i)

for(

int j=

1;j<=n;j++)}

return;}

intmain()

八皇后問題 DFS

古老而且典型的回溯問題 八皇后問題 找了採用深度優先 進行實現 思路 一 首先 需要 乙個判斷該位置能不能放的問題 1 乙個同一行 肯定不能放 並且 mat i col 問題了 2 左斜向上的部分肯定不能放 因為這裡是從0 行開始的 先卡第一行 在看第二行 要是左斜向上 有皇后 那麼這個位置不能放 ...

八皇后問題(dfs)

八皇后問題,是乙個古老而著名的問題,是搜尋演算法的經典案例。該問題是國際西洋棋棋手馬克思貝瑟爾於1848年提出 在8 8格的西洋棋上擺放八個皇后。使其不能相互攻擊,即任意兩個皇后都不能處於同一行 同一列或者同一斜線,問有多少中擺法。分析 用dfs一行一行得進行擺放,用for迴圈來確定每一列,由於是一...

八皇后問題 dfs

一 題意解析 西洋棋中的皇后,可以橫向 縱向 斜向移動。如何在乙個8x8的棋盤上放置8個皇后,使得任意兩個皇后都不在同一條橫線 豎線 斜線方向上?八皇后問題是乙個古老的問題,於1848年由一位西洋棋棋手提出 在8 8格的西洋棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行 同一列或...