回溯算法(八皇后)

简介: 回溯算法(八皇后)
/*
  theme:八皇后
  回溯算法 
  coder:瞿鹏志 
  time:2015.1.11
 */
#include <iostream>
using namespace std;
#define N 15
#define M 8
class Eight_Queen{
   private:
  int left[N];
  int right[N];
  int colm[M];
  int cnt;
  public:
    Eight_Queen(){
    int i;
    cnt=0;
     for(i=0;i<N;i++){
      left[i]=right[i]=0;
      if(i<M) colm[i]=-1;
     }  
    }
   void Queen(int i){
  for(int j=0;j<M;j++){
    if(left[i+j]!=1&&right[i-j+7]!=1&&colm[j]==-1){
      colm[j]=i;
      left[i+j]=right[i-j+7]=1;
      if(i==M-1){
        cnt++;  
      }else{
        Queen(i+1);
      }
    colm[j]=-1;
    left[i+j]=right[i-j+7]=0;
    }//end if 
  }//end for
   }
   int GetCnt(){
    return cnt;
   }  
};
int main(void)
{
  Eight_Queen Queen1;
  Queen1.Queen(0);
  cout<<Queen1.GetCnt();
  return 0;
}
相关文章
|
4月前
|
存储 算法 程序员
【算法训练-回溯算法 二】【子集组合问题】子集、组合、子集II、组合总和
【算法训练-回溯算法 二】【子集组合问题】子集、组合、子集II、组合总和
41 0
|
4月前
|
机器学习/深度学习 存储 算法
【算法训练-回溯算法 一】【排列问题】全排列、全排列II
【算法训练-回溯算法 一】【排列问题】全排列、全排列II
49 0
|
3月前
|
算法
【算法系列篇】递归、搜索和回溯(四)
【算法系列篇】递归、搜索和回溯(四)
|
1月前
|
算法
回溯算法练习题
回溯算法练习题
13 0
|
1月前
|
算法 Java 定位技术
【数据结构与算法】递归、回溯、八皇后 一文打尽!
【数据结构与算法】递归、回溯、八皇后 一文打尽!
|
1月前
|
算法 决策智能
深度探讨回溯算法:追寻解空间的奇妙之旅
深度探讨回溯算法:追寻解空间的奇妙之旅
|
3月前
|
算法
【算法系列篇】递归、搜索和回溯(三)
【算法系列篇】递归、搜索和回溯(三)
|
3月前
|
算法
【算法系列篇】递归、搜索和回溯(二)
【算法系列篇】递归、搜索和回溯(二)
|
3月前
|
算法
【算法系列篇】递归、搜索与回溯(一)
【算法系列篇】递归、搜索与回溯(一)
|
3月前
|
算法 前端开发 JavaScript
【面试高频题】难度 2/5,回溯算法经典运用
【面试高频题】难度 2/5,回溯算法经典运用