AcWing 3472. 八皇后
原题链接
中等
作者:
愛_
,
2024-11-23 22:12:45
,
所有人可见
,
阅读 1
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6;
int n,m,cnt;
int g[N];
bool lie[N],duijiao[N],fanduijiao[N];
vector<int> k;
void dfs(int u)
{
if(u == 8 ){
for(int i=0;i<8;i++){
k.push_back(g[i]);
}
return;
}
for(int i = 1;i<=8;i++)
{
if(!lie[i] and !duijiao[u+i] and !fanduijiao[8-u+i])
{
g[u]=i;
lie[i]=duijiao[u+i] =fanduijiao[8-u+i] = true;
dfs(u+1);
lie[i]=duijiao[u+i] =fanduijiao[8-u+i] = false;
}
}
}
int main()
{
cin>>n;
dfs(0);
while(cin>>m)
{
for(int i =(m-1)*8;i<8*m;i++){
cout<<k[i];
}
cout<<endl;
};
return 0;
}