题目链接地址:http://acm.hdu.edu.cn/showproblem.php?pid=2553

/*DFS
Date: 2012/1010
思路:由题易知,每行最多只能有一个皇后,所以用x[]表示行向量,搜索从第一个行向量开始
按行向量递增搜索,一直到最后一个行向量结束时得到一种放置方法,
注意:要预先把合法的放置方法数保存起来,不然会超时
*/

#include<iostream>
#include<cmath>
using namespace std;
#define maxn 11
int num[maxn],x[maxn],sum,n;
bool ok(int u)       //判断第u个向量中的j(dfs()中的)列是否合法
{for(int i = 1; i < u; i++)if(x[i] == x[u] || abs(i - u) == abs(x[i] - x[u]))return false;return true;
}
void dfs(int u)
{if(u == n+1)    //到最后一个向量了
    {sum++;return;}for(int j = 1; j <= n; j++){x[u] = j;if(ok(u)) dfs(u+1);  //如果合法,则继续下一个向量
    }
}
void solve()
{for(int i = 1; i < maxn; i++)sum = 0,n = i,dfs(1),num[i] = sum;
}
int main()
{//freopen("1003.txt","r",stdin);
    solve();while(scanf("%d",&n) && n)printf("%d\n",num[n]);return 0;
}

转载于:https://www.cnblogs.com/sorryhao/archive/2012/10/10/2718849.html

HDU 2553(N皇后问题)相关推荐

  1. hdu 2553 N皇后问题 搜索 回溯法

    题目地址: hdu 2553 直接小白书上面的回溯法  但是不知道有多少组数据 所以打一个表~ 代码: #include<iostream>using namespace std;int ...

  2. [HDU] 2553 N皇后问题-简单深搜

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2553 方法: 1.可以用对称的思想,即:如果N是偶数,则只计算第一个皇后分别放在第一行的位置1到N/ ...

  3. hdu 2553 N皇后问题(深度递归搜索)

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

  4. hdu 2553 N皇后问题【dfs】

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

  5. hdu 2553 N皇后问题

    Problem Description 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上. 你的任务是,对于给定的N ...

  6. HDU - 2553:N皇后问题

    N皇后问题 来源:HDU 题目 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上. 你的任务是,对于给定的N,求出有 ...

  7. 【HDU - 2553】N皇后问题 (dfs经典问题,回溯,搜索)

    题干: 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上.  你的任务是,对于给定的N,求出有多少种合法的放置方法. ...

  8. 【HDU 2553】 N皇后问题

    在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上.  你的任务是,对于给定的N,求出有多少种合法的放置方法. Inp ...

  9. 杭电 -- 2553 N皇后问题

    题意及思路 题意:例如在八皇后问题中,8*8的方格中,要求放置八个皇后.要求两两皇后均不在同一行,不在同一列,并且不在同一个连线上. 思路:考虑到每一行每一列只能有一个皇后,这就可以看成是n的全排列问 ...

  10. 杭电 HOJ 2553 N皇后问题 解题报告

    回溯法,经典题啊.发现很简单有木有...看代码~用数组保存sum值,否则会超时.杭电也够坑人的... #include <iostream> using namespace std;int ...

最新文章

  1. docker 主机ip_docker容器指定ip
  2. [Spark][Python]groupByKey例子
  3. 你真的了解css像素嘛?
  4. python print(f)执行将报错_Linux中为什么执行自己的程序要在前面加./
  5. linux mount 默认读写,Linux mount 修改文件系统的读写属性
  6. 洛谷 1972 莫队
  7. 脉脉就APP整改下架一事致歉:正积极排查 将尽快完成整改
  8. 新版jmeter图形化报告解析
  9. 知乎python小项目_python进阶知乎
  10. 介绍ImageOptim图片处理软件
  11. 计算机显示去掉拼音分类,win8系统取消电脑文件显示以字母数字拼音分组的操作办法...
  12. 离散数学-各种关联词的符号化
  13. react Hook useState()
  14. 什么是执行计划? 怎么用?
  15. 击鼓游戏-第10届蓝桥杯Scratch省赛真题第7题
  16. VMware报错:无法获得VMCI驱动程序的版本:句柄无效。驱动程序vmci.sys的版本不正确
  17. office毕设论文格式教程
  18. Spring,Spring MVC及Spring Boot区别,你分清了吗
  19. 每个人来到世上,都是匆匆过客
  20. CV全新范式 | LSTM在CV领域杀出一条血路,完美超越Swin与ConvNeXt等前沿算法

热门文章

  1. 如何通过 Apple Watch 解锁 Mac
  2. TCP的send与recv函数小结
  3. 解决Eclipse发布到Tomcat丢失依赖jar包的问题
  4. Xshell连接不上虚拟机,或许该这样做!
  5. 第二阶段小组冲刺第三天总结
  6. linux系统命令 回顾2
  7. 【BZOJ 1026】 [SCOI2009]windy数
  8. Linux之Inode详解 作者:羽飞博客 http://www.opsers.org/
  9. 并发---ConcurrentHashMap
  10. 基于Protues的Arduino学习笔记01-Arduino UNO实验板设计