搜索算法

目錄

深度優先搜索(dfs)以八皇后問題爲例


深度優先搜索(dfs)以八皇后問題爲例

#define MAX 105

int n,vis[3][MAX];
int cnt=0;

void dfs(int d){
  if(d==n+1){
    cnt++;
    return;
  }
  for(int j=1;j<=n;j++){
    if(!vis[0][j] && !vis[1][d-j+n] && !vis[2][d+j]){ // 分別表示這一列、副對角線、主對角線
      vis[0][j]=vis[1][d-j+n]=vis[2][d+j]=1;
      dfs(d+1);
      vis[0][j]=vis[1][d-j+n]=vis[2][d+j]=0;
    }
  }
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章