HDU-2553-N皇后问题

http://acm.hdu.edu.cn/showproblem.php?pid=2553

基本的DFS,感觉DFS就像求全排列一样

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int n,ans;
int map[15];
int visit[15];
int sol[15];
void dfs(int k)
{int i,j,flag;if(k==n+1){ans++;return;}for(i=1;i<=n;i++)if(!visit[i])  //各行棋子不能在同一竖{map[k]=i;flag=1;for(j=1;j<=k-1;j++)  //判断是否在同一斜线上if((map[k]-map[j])==(k-j)||(map[k]-map[j])==(j-k)){flag=0;break;}if(flag){visit[i]=1;dfs(k+1);visit[i]=0;  //释放第i列,进行下一次搜索}}
}
int main()
{int i;for(i=1;i<=10;i++){ans=0;n=i;memset(map,0,sizeof(map));memset(visit,0,sizeof(visit));dfs(1);sol[i]=ans;}while(scanf("%d",&n),n)printf("%d\n",sol[n]);return 0;
}

转载于:https://www.cnblogs.com/java0721/archive/2012/06/29/2602828.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. 简述冯诺依曼工作原理_深入浅出讲解计算机原理
  2. Magento2后台忘记密码
  3. mysql事务控制(xa分布式事务)和锁定语句_MySQL的SQL语句 -事务性语句和锁定语句(7)- XA 事务...
  4. 图像扩充边界_使用机器学习来索引数十亿图像中的文本
  5. SQL SERVER 2005下载(本地使用)
  6. html渐变显示动画效果,css3实现背景动态渐变效果
  7. 光纤传输相关问题及讨论
  8. vue admin html,vue-admin-template笔记(六)
  9. 科研突破:非宁静无以致远
  10. egret eui.Button改变文本、背景色及是否可点击
  11. vue中使用微信jssdk语音聊天功能
  12. 战神引擎修改文件的位置
  13. php实现简单的留言板
  14. word表格怎么缩小上下间距_word,20XX,怎么调整表格上下距离
  15. OpenSea合约深度解析——atomicMatch_ 篇
  16. python 散点图
  17. 杰理6905A更改蓝牙名字
  18. openmeetings6.10安装配置 踩坑记录
  19. 服务器配置https
  20. 2k2实用球员_nba2kol2实用球员

热门文章

  1. Java程序员面试准备-路线
  2. P5112 FZOUTSY
  3. 百度云BaaS体系揭秘,突破共识机制、单机计算和串行处理三大瓶颈
  4. Java VisualVM无法检测到本地java程序 的 解决办法
  5. 一篇关于我是怎么理解喜欢上并且做好前端开发工作的文档
  6. 谁说SELINUX,IPTABLES,SAMBA不能共存?
  7. 删除8848的mysearch
  8. 1.2、获取、创建 ApplicationContextInitializer
  9. 查看其他计算机的共享资源,NetResView (共享资源查看)
  10. centos查看磁盘转速_Linux 磁盘管理