51| 八皇后

代码实现

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

int n;
const int N = 15;
bool st[N], st1[2*N], st2[2*N];
vector <int> path;
int ret;
void dfs(int x)
{
	if (x > n)
	{
		ret++;
		if(ret <= 3)
		{
			for (auto x : path) cout << x << " ";
			cout << endl;			
		}
		return ;
	}
	for (int y = 1; y <= n; y++)
	{
		if (st[y] || st1[y-x+n] || st2[y+x] ) continue;
		st[y] = st1[y-x+n] = st2[y+x] = true;
		path.push_back(y);
		dfs(x+1);
		st[y] =  st1[y-x+n] = st2[y+x] = false;
		path.pop_back();
	}
 } 
int main ()
{
	cin >> n;
	dfs(1);
	cout << ret << endl;
	return 0;
 } 
相关推荐
To_OC9 小时前
LC 128 最长连续序列:别上来就排序,O (n) 解法才是这题的灵魂
javascript·算法·leetcode
05Kevin1 天前
lk每日冒险题--数据结构6.27
算法
To_OC1 天前
从一次栈溢出报错说起,我把递归彻底扒明白了
javascript·算法·程序员
千纸鹤安安2 天前
千问Qwen-AgentWorld来了:一个语言模型搞定七大Agent场景,GPT-5.4都输了
算法
七牛开发者2 天前
MCP 到底是什么?为什么 Agent 都想接上它
算法·aigc·agent
卷无止境2 天前
C++ 的Eigen 库全解析
c++
卷无止境2 天前
现代 C++特性大盘点:一门脱胎换骨的老语言
c++·后端