原题链接:Acwing 3472. 八皇后
#include <bits/stdc++.h>
using namespace std;
const int M=1e6+10;
int p[1010];
bool f[1010];
vector<int> res[100];
int num=0;
void n_queen(int index)
{
if(index==9)
{
num++;
for(int i=1;i<=8;i++)
{
res[num].push_back(p[i]);
}
return ;
}
for(int x=1;x<=8;x++)
{
if(f[x]==false)
{
bool flag=true;
for(int pre=1;pre<index;pre++)
{
if(abs(index-pre)==abs(x-p[pre]))
{
flag=false;
break;
}
}
if(flag)
{
p[index]=x;
f[x]=true;
n_queen(index+1);
f[x]=false;
}
}
}
}
int main()
{
std::ios::sync_with_stdio(false);
int n;
cin>>n;
n_queen(1);
while(n--)
{
int b;
cin>>b;
for(int i=0;i<8;i++)
{
cout<<res[b][i];
}
cout<<endl;
}
return 0;
}
|