这题要打表,不然超时。

AC代码

#include<cstdio>
#include<cstring>
int n,cnt;
int vis[3][20];
int ans[11];
void dfs(int i){ //以行递增
    if(i==n){
        ++cnt;
        return;
    }
    for(int j=0;j<n;++j){ //尝试放入第列
        if(!vis[0][j]&&!vis[1][i+j]&&!vis[2][i-j+n]){
            vis[0][j]=vis[1][i+j]=vis[2][i-j+n]=1;
            dfs(i+1);
            vis[0][j]=vis[1][i+j]=vis[2][i-j+n]=0;
        }
    }
}
int main(){
    for(n=1;n<=10;++n){
        cnt=0;
        memset(vis,0,sizeof(vis));
        dfs(0);
        ans[n]=cnt;
    }
    while(scanf("%d",&n)==1&&n){
        printf("%d\n",ans[n]);
    }
    return 0;
}

如有不当之处欢迎指出!

hdu 2553 N皇后的更多相关文章

  1. [HDU 2553]--N皇后问题(回溯)/N皇后问题的分析

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2553 N皇后问题 Time Limit: 2000/1000 MS (Java/Others)     ...

  2. HDU 2553(N皇后)(DFS)

    http://acm.hdu.edu.cn/showproblem.php?pid=2553 i表示行,map[i]表示列,然后用DFS遍历回溯 可以参考这篇文章: http://blog.csdn. ...

  3. hdu 2553 N皇后问题

    回溯. 一个主对角线,副对角线的技巧 //vis[0][i]表示第i列有没有皇后 vis[1][cur+i]表示副对角线 vis[2][cur-i+n]表示主对角线 #include <cstd ...

  4. hdu 2553 N皇后问题 (经典DFS)

    题目链接:点击链接 思路:用一维数组hang[num] = i,num表示第num行,i表示第i列,计算n = 1~10皇后的不同放置数量,然后打表 #include<stdio.h> # ...

  5. HDU 2553 N皇后问题(详细题解)

    这是一道深搜题目!问题的关键是在剪枝. 下面我们对问题进行分析: 1.一行只能放一个皇后,所以我们一旦确定此处可以放皇后,那么该行就只能放一个皇后,下面的就不要再搜了. 2.每一列只能放一个皇后,所以 ...

  6. HDU 2553 n皇后问题(回溯法)

     DFS Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Description ...

  7. HDU 2553 N皇后问题(dfs)

    N皇后问题 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description 在 ...

  8. [ An Ac a Day ^_^ ] hdu 2553 N皇后问题 搜索

    曾经想过一天一AC 坚持下来的确不容易额 (我是没坚持下来 尽量以后坚持…… 经典的N皇后问题 搜索的入门问题 学了这么久竟然一直没敲过 今天敲一下…… 这道题也不是很简单额 纯暴力就超时了 要打一下 ...

  9. hdu 2553 n皇后问题【DFS递归解法】

    <题目链接> 题目大意: Problem Description 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45 ...

  10. HDU 2553 N皇后问题(深搜DFS)

    N皇后问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

随机推荐

  1. python_如何拆分含有多种分隔符的字符串?

    案例: 把某个字符串依据分隔符拆分,该字符包含不同的多种分隔符,如下 s = '12;;7.osjd;.jshdjdknx+' 其中 ; . + 是分隔符 有哪些解决方案? 方法1:通过str.spl ...

  2. scrapy_图片下载

    需要安装第三方库: 安装 pillow库 pip install -i https://pypi.doubanio.com/simple pillow 如何对图片进行自动下载? 首先明白,图片去哪下? ...

  3. Tomcat--startup.bat文件

    Tomcat--startup.bat文件 如何启动tomcat,如何关闭tomcat等常规操作,我们应该都很清楚了,但是实际中我们经常会遇到一些恶心的情景,比如说正在我们撸码撸的很高兴的时候,ecl ...

  4. hibernate 持久化对象的三个状态

    Hibernate中的对象有3种状态 瞬时对象(TransientObjects).持久化对象(PersistentObjects)和离线对象(DetachedObjects也叫做脱管对象) Tran ...

  5. python并发编程之多进程(实现)

    一.multipricessing模块的介绍 python中的多线程无法利用多核优势,如果想要充分的使用多核CPU资源,在python中大部分情况下需要用多线程,python提供了multiproce ...

  6. 02-创建 TLS CA证书及密钥

    创建 TLS CA证书及密钥 kubernetes 系统的各组件需要使用 TLS 证书对通信进行加密,本文档使用 CloudFlare 的 PKI 工具集 cfssl 来生成 Certificate ...

  7. VS 2017 发布:由于构建错误,发布失败

    用17写AspNetCore 也一年了,最近出现了这个问题 : 在点击发布的时候 报错了,构建失败的问题,刚开始还排查日子,删除以往的发布遗留痕迹,后来发现不行, 但是项目在本地运行的时候是好使的,生 ...

  8. MongoDB 基本操作学习笔记

    // 查看所有数据库 show dbs // amdin 0.000GB // local 0.000GB // 使用数据库 use admin // switched to db admin // ...

  9. 查询操作 -- Django从入门到精通系列教程

    该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ...

  10. CSS学习笔记(一):定位与溢出

    一.定位:positionstatic | relative | absolute | fixed | inherit ,各值含义如下: 1)static:元素框正常生成,块级元素生成一个矩形框,作为 ...