http://ybt.ssoier.cn:8088/problem_show.php?pid=1213
/*
1213:八皇后问题 AC 改 蒋长灵(2022.02.01)
http://ybt.ssoier.cn:8088/problem_show.php?pid=1213
*/
#include<bits/stdc++.h>
using namespace std;
int z[20],y[20],l[10],bj[10][10],sum=1;
void print()
{
cout<<"No. "<<sum<<endl;
for(int i=1;i<=8;i++)
{
for(int j=1;j<=8;j++)
{
cout<<bj[j][i]<<" ";//不是bj[i][j];毕竟我们是这么推的(先列)
}
cout<<endl;
}
sum++;
}
void f(int k)
{
// if(k==9)
// {
// print();
// }
for(int i=1;i<=8;i++)
{
if(l[i]==0&&/*z[abs(i-k+7]==0*/z[i-k+7]==0&&y[i+k]==0)
{
bj[k][i]=1;
l[i]=1;
z[i-k+7]=1;
y[i+k]=1;
if(k==8)
{
print();
}
else
{
f(k+1);
}
l[i]=0;
z[i-k+7]=0;
y[i+k]=0;
bj[k][i]=0;
}
}
}
int main()
{
f(1);
return 0;
}