【NOJ1007】【算法实验二】【DFS_回溯】八皇后问题

该博客探讨了经典的八皇后问题,介绍了如何使用深度优先搜索(DFS)算法来找到所有可能的解决方案。博客内容包括问题描述、解题思路以及输出样例,并提供了改进后的代码实现。
摘要由CSDN通过智能技术生成

1007.8皇后问题

时限:1000ms 内存限制:10000K  总时限:3000ms

描述

输出8皇后问题所有结果。

 

输入

没有输入。

 

输出

每个结果第一行是No n:的形式,n表示输出的是第几个结果;

下面8行,每行8个字符,‘A’表示皇后,‘.’表示空格。

不同的结果中,先输出第一个皇后位置靠前的结果;第一个皇后位置相同,先输出第二个皇后位置靠前的结果;依次类推。

 

输出样例

输出的前几行:
No 1:
A.......
....A...
.......A
.....A..
..A.....
......A.
.A......
...A....


#include <iostream>
#include <cmath>

using namespace std;

int n=8;        //求解8皇后问题
int a[8];       //存放解,a[0]=1代表第0行第1列放置皇后
int cnt=0;      //解的个数

void dfs(int m);        //回溯深搜
bool canmoveto(int m);  //第m行第a[m]列能否放皇后?
void fprint(int cnt);   //打印一组解

int main()
{
    dfs(0);
    return 0;
}

void dfs(int m)     //进行第m行的放置工作
{
    if(m&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值