【题目描述】
在国际象棋棋盘上放置八个皇后,要求每两个皇后之间不能直接吃掉对方。
【输入】
(无)
【输出】
按给定顺序和格式输出所有八皇后问题的解(见样例)。
【输入样例】
(无)
【输出样例】
No. 1
1 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0
No. 2
1 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 1 0 0 0 0 0
…以下省略
【心得】输出的时候设置了一个小坑,样例并不是按照搜索的顺序进行输出,做了一个变换,关于主对角线对称,想想真是醉了!
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=10;
int num=0,vis[maxn][maxn],b[maxn],c[2*maxn],d[2*maxn];
void print()
{
int j;
num++;
cout<<"No. "<<num<<endl;
for(int i=1;i<=8;i++