八皇后问题

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int cnt,n=8,a[15],b[105],c[105],d[105];
void dfs(int x)
{
	if(x==9)
	{
		cnt++;
		for(int i=1;i<=n;i++)
		{
			cout<<a[i]<<" ";
		}
		cout<<endl;
		return ;
	}
	for(int i=1;i<=n;i++)
	{
		if(b[i]==0&&c[i+x]==0&&d[i-x+7]==0)
		{
			b[i]=1;
			c[i+x]=1;
			d[i-x+7]=1;
			a[x]=i;
			dfs(x+1);
			b[i]=0;
			c[i+x]=0;
			d[i-x+7]=0;
		}
	}
}
int main()
{
	dfs(1);
	cout<<cnt;
	return 0; 
} 
相关推荐
言乐64 分钟前
Python体现逻辑回归和决策树的区别
开发语言·python·算法·决策树·逻辑回归
顶点多余16 分钟前
C/C++常见面试题
开发语言·c++
HugoStudio_SWAN17 分钟前
洛谷 B4575 [GESP202609 二级] 直角三角形——临场定义理解与边界质疑
c++·学习·程序人生·算法
(Charon)18 分钟前
【C++面试】右值引用与移动语义:std::move到底做了什么
开发语言·c++
红豆诗人23 分钟前
C++二叉搜索树:查找、插入和删除为什么这样写
数据结构·c++·算法
HZjiangzi24 分钟前
深耕精密驱动二十六载,捷昌驱动助力机器人产业升级发展
人工智能·算法
奋发向前wcx24 分钟前
CSP-J复赛模拟赛3 王晨旭补题 2026.10.4
算法
H.莓飛33 分钟前
【数据结构】堆_OJ题
linux·数据结构·算法
夏天的清晨43 分钟前
C++入门学习
开发语言·c++·学习
汉克老师1 小时前
GESP2026年9月认证C++七级( 第二部分判断题(1~10题)精讲
c++·gesp·小学生·学c++编程