欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

八皇后【洛谷】

程序员文章站 2022-06-08 17:56:39
...

八皇后【洛谷】

#include<bits/stdc++.h>
using namespace std;
int a[1000],b[1000],c[1000],d[1000],n,s;
void print()
{
	s++;
	for(int i=1;i<=n;i++)	cout<<a[i]<<" ";
	cout<<endl;
	return ;
}
void dfs(int i)
{
	for(int j=1;j<=n;j++)
		if(!b[j]&&!c[i+j]&&!d[i-j+n])
		{
			a[i]=j;b[j]=c[i+j]=d[i-j+n]=1;
			if(i==n)	print();
			else	dfs(i+1);
			b[j]=c[i+j]=d[i-j+n]=0;
		}
}
int main()
{
	cin>>n;
	dfs(1);
	cout<<s;
}
		
		

相关标签: 搜索 dfs