HDU 2553(N皇后问题)
题目链接地址: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皇后问题)相关推荐
- hdu 2553 N皇后问题 搜索 回溯法
题目地址: hdu 2553 直接小白书上面的回溯法 但是不知道有多少组数据 所以打一个表~ 代码: #include<iostream>using namespace std;int ...
- [HDU] 2553 N皇后问题-简单深搜
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2553 方法: 1.可以用对称的思想,即:如果N是偶数,则只计算第一个皇后分别放在第一行的位置1到N/ ...
- hdu 2553 N皇后问题(深度递归搜索)
N皇后问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- hdu 2553 N皇后问题【dfs】
N皇后问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- hdu 2553 N皇后问题
Problem Description 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上. 你的任务是,对于给定的N ...
- HDU - 2553:N皇后问题
N皇后问题 来源:HDU 题目 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上. 你的任务是,对于给定的N,求出有 ...
- 【HDU - 2553】N皇后问题 (dfs经典问题,回溯,搜索)
题干: 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上. 你的任务是,对于给定的N,求出有多少种合法的放置方法. ...
- 【HDU 2553】 N皇后问题
在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上. 你的任务是,对于给定的N,求出有多少种合法的放置方法. Inp ...
- 杭电 -- 2553 N皇后问题
题意及思路 题意:例如在八皇后问题中,8*8的方格中,要求放置八个皇后.要求两两皇后均不在同一行,不在同一列,并且不在同一个连线上. 思路:考虑到每一行每一列只能有一个皇后,这就可以看成是n的全排列问 ...
- 杭电 HOJ 2553 N皇后问题 解题报告
回溯法,经典题啊.发现很简单有木有...看代码~用数组保存sum值,否则会超时.杭电也够坑人的... #include <iostream> using namespace std;int ...
最新文章
- docker 主机ip_docker容器指定ip
- [Spark][Python]groupByKey例子
- 你真的了解css像素嘛?
- python print(f)执行将报错_Linux中为什么执行自己的程序要在前面加./
- linux mount 默认读写,Linux mount 修改文件系统的读写属性
- 洛谷 1972 莫队
- 脉脉就APP整改下架一事致歉:正积极排查 将尽快完成整改
- 新版jmeter图形化报告解析
- 知乎python小项目_python进阶知乎
- 介绍ImageOptim图片处理软件
- 计算机显示去掉拼音分类,win8系统取消电脑文件显示以字母数字拼音分组的操作办法...
- 离散数学-各种关联词的符号化
- react Hook useState()
- 什么是执行计划? 怎么用?
- 击鼓游戏-第10届蓝桥杯Scratch省赛真题第7题
- VMware报错:无法获得VMCI驱动程序的版本:句柄无效。驱动程序vmci.sys的版本不正确
- office毕设论文格式教程
- Spring,Spring MVC及Spring Boot区别,你分清了吗
- 每个人来到世上,都是匆匆过客
- CV全新范式 | LSTM在CV领域杀出一条血路,完美超越Swin与ConvNeXt等前沿算法
热门文章
- 如何通过 Apple Watch 解锁 Mac
- TCP的send与recv函数小结
- 解决Eclipse发布到Tomcat丢失依赖jar包的问题
- Xshell连接不上虚拟机,或许该这样做!
- 第二阶段小组冲刺第三天总结
- linux系统命令 回顾2
- 【BZOJ 1026】 [SCOI2009]windy数
- Linux之Inode详解 作者:羽飞博客 http://www.opsers.org/
- 并发---ConcurrentHashMap
- 基于Protues的Arduino学习笔记01-Arduino UNO实验板设计