八皇后(深搜)

//其中 a数组表示的是行;b数组表示的是列;c表示的是左下到右上的对角线;d表示的是左上到右下的对角线;
//因为对于一个对角线来说 其中的点的i和j是有确定的关系的  所以不必挨个遍历去寻找对角线上有没有其他的皇后 直接把判断的复杂度降低到了O(1)!!
#include
#include
#include
#include
using namespace std;
int a[100],b[100],c[100],d[100];
int total=0;
int n;
void queen(int i)
{
    if(i>n)
    {
    	total++;
    	//输出前三次结果 
         if(total<=3)
    	{
        	for(int k=1;k<=n;k++)
        	cout<>n;
    queen(1);
    cout<

八皇后(深搜)_第1张图片

你可能感兴趣的:(算法)