文档章节

八皇后 c++

YYQ_ZJL
 YYQ_ZJL
发布于 2016/07/03 10:34
字数 140
阅读 6
收藏 0
#include<iostream>
#include<vector>
#define jdz(a) a > 0?a:-a;
using namespace std;
bool check(int n,vector<int> &path)
{
    int s = path.pop_back;
    int tmp;
    int dx = 1;
    while(!path.empty)
    {
        tmp = path.pop_back;
        if(tmp == s)
            return false;
        else if(s-tmp == dx || tmp-s == dx)
            return false;
    }
    return true;
}
void dfs(int n,bool &used,vector<int> &path,vector<vector<int>> &res)      //num代表第几个皇后,
{
    if(n > 8)
    {
        res.push_back(path);
        return;
    }
    for(int i = 0;i <= used.size; i++)
    {
        if(used[i] == false && check(n,path)){
            path.push_back(i);
            used[i] = true;

            dfs(n+1,used,path,res);
            path.pop_back();
            used[i] = false;
        }
    }
}
int main(void)
{
    vector<int> path;
    bool used[8];
    vector<vector<int>> res;
    for(int i = 0;i < 8;i ++)
    {
        used[i] = true;
        path.push_back(i);
        dfs(1,used,path,res);

    }
    return 0;
}

 

本文转载自:http://www.cnblogs.com/zhangjialu2015/p/5277081.html

上一篇: 省赛
YYQ_ZJL
粉丝 0
博文 30
码字总数 206
作品 0
杭州
其他
私信 提问
回溯VS递归,回溯法(八皇后问题)及C语言实现

回溯法 回溯法,又被称为“试探法”。解决问题时,每进行一步,都是抱着试试看的态度,如果发现当前选择并不是最好的,或者这么走下去肯定达不到目标,立刻做回退操作重新选择。这种走不通就...

这个人很懒什么都没留下
03/07
0
0
win32实现List Control

到目前为止,还没有正儿八经的写过MFC程序,虽然现在自己把MFC的框架看得差不多,但是还是不想 使用MFC写代码,做界面MFC是关键,这是谁也无法逃脱的框架,好了,废话少说,说说自己的实现。...

ryany
2011/01/10
662
0
Armadillo C++ Library 4.000 发布

Armadillo C++ Library 4.000 发布,此版本更新内容如下: 添加了稀疏矩阵本征分解和 MEX 连接器,用来进行 Matlab 和八阶矩阵的连接 现在很多分解都默认使用分治算法 Armadillo C++ Librar...

oschina
2014/01/06
1K
1
算法笔记CodeUp第一至第六章刷题记录

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/myRealization/article/details/80154726 文章目录 《算法笔记》2.2...

myRealization
09/01
0
0
想学好C++当程序员大神,先把C语言基础打好

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
2018/05/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JS--function

一、声明提前(hoist) 在js程序开始执行前,引擎会查找所有var声明的变量和function声明的函数,集中到当前作用域顶部集中创建,赋值留在原地 二、三种创建函数的方式 1、声明方式创建函数-...

wytao1995
今天
4
0
微服务之间调用控制器注解类型的差异

今天在一个业务服务通过Feign调用文件服务上传文件时遇到了几个问题: 1. 提示http请求头过大的问题; 此时需要修改bootstrap.yml,加入 server: max-http-header-size: 10000000 用以放大...

不再熬夜
今天
7
0
用 4G 工作是什么体验

七月开始,因为工作原因,在公司附近租了个住处,方便工作。离公司近了,感觉就是不一样,之前每天 5:30 就要起床赶地铁,现在可以睡到自然醒,一看才 7 点,悠闲的起床洗漱,踱步到公司,都...

zzxworld
今天
6
0
sonar报错volatile

问题发生 原先代码如下: //认证授权码private static volatile String AUTHORIZATION_CODE = "init"; git push 之后,sonar认为这是个bug检测报告截图如下: 分析排查 解释说明: Markin...

开源小菜鸟2333
今天
5
0
《Java实践指南》--读后

闲读《Java实践指南》... 1.lvy 某些项目中能够看到ivy.xml。早期使用ant的项目中,常常用ivy.xml来下载项目依赖。 2.ant 作为java程序员,应该都知道ant,虽然可能用过的人不多。为什么ant...

RippleChan
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部