八皇后问题

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; 
} 
相关推荐
海绵宝宝转agent4 分钟前
2026-10-9 leetcode100刷题+面经整理
笔记·算法·面试
yi01114 分钟前
DAY24: LeetCode 167:两数之和 II|从暴力枚举到左右双指针
笔记·python·算法·leetcode·二分查找·双指针
木井巳15 分钟前
【BFS 解决拓扑排序】课程表
java·算法·leetcode·广度优先·宽度优先·推荐算法·图搜索算法
Logic10128 分钟前
C语言/数据结构数位DP题解:平滑排列数字统计——区间内相邻位差不超过K的数字个数
c语言·数据结构·动态规划·时间复杂度·数位dp·算法题·前导零处理
扶风ff35 分钟前
练题簿在线免费刷题:会员线下组卷、Word 试卷与成绩导入,课堂检测更方便
java·开发语言·算法·小程序·word
程序员老陆39 分钟前
C++ 多线程通信方式全景:从共享内存到结构化协调
开发语言·c++
yi01143 分钟前
LeetCode 15:三数之和|排序 + 双指针,如何避免重复答案?
笔记·python·算法·leetcode·双指针
-dzk-1 小时前
【多维动态规划】LC 1143.最长公共子序列
算法·动态规划
某不知名網友1 小时前
ROS2 核心通信:话题发布与订阅详解
开发语言·c++
C++ 老炮儿的技术栈1 小时前
char (*csConnectName)[256]; 和 char csConnectName [256] 有什么区别
java·c语言·开发语言·c++·人工智能·算法·c