843. n-皇后问题
Posted 幽殇默
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了843. n-皇后问题相关的知识,希望对你有一定的参考价值。
https://www.acwing.com/problem/content/845/
#include<cstdio>
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
int n;
int path[15];
bool vis[15];
void dfs(int index)
{
for(int i=0;i<index;i++)
for(int j=i+1;j<index;j++)
if(abs(i-j)==abs(path[i]-path[j])) return;
if(index==n)
{
bool b[15][15]={0};
for(int i=1;i<=n;i++) b[path[i-1]][i]=true;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(b[i][j]) cout<<"Q";
else cout<<".";
}
cout<<endl;
}
cout<<endl;
return;
}
for(int i=1;i<=n;i++)
{
if(!vis[i])
{
path[index]=i;
vis[i]=true;
dfs(index+1);
vis[i]=false;
}
}
}
int main(void)
{
cin>>n;
dfs(0);
return 0;
}
以上是关于843. n-皇后问题的主要内容,如果未能解决你的问题,请参考以下文章