回溯算法(八皇后)
2023-02-10 10:10:49 阅读次数:304
回溯算法,i++
/*
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;
}
版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.51cto.com/u_12392289/5985569,作者:机智的程序员小熊,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。
上一篇:拓端数据tecdat|matlab代写实现MCMC的马尔可夫切换ARMA - GARCH模型估计
下一篇:无类型数据排序实现