hdu 2553(N皇后)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2553
哎,不说了,打表过的,直接搜的话,TLE..
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 //#define MAXN 22 6 //int num[MAXN]; 7 //bool mark[3][MAXN]; 8 int sum,n; 9 10 /* 11 void dfs(int row){ 12 if(row==n+1)sum++; 13 for(int i=1;i<=n;i++){ 14 bool flag=true; 15 num[row]=i;//存当前行的列号 16 for(int j=1;j<row;j++){ 17 //判断列、主对角线、副对角线是否冲突 18 if(num[j]==num[row]||row-num[row]==j-num[j]||row+num[row]==j+num[j]){ 19 flag=false; 20 break; 21 } 22 } 23 if(flag)dfs(row+1);//此时,前row行都不冲突 24 } 25 } 26 */ 27 28 29 /* 30 void dfs(int row){ 31 if(row==n+1)sum++; 32 for(int i=1;i<=n;i++){ 33 if(!mark[0][i]&&!mark[1][row+i]&&!mark[2][row-i+n]){ 34 mark[0][i]=mark[1][row+i]=mark[2][row-i+n]=true; 35 dfs(row+1); 36 mark[0][i]=mark[1][row+i]=mark[2][row-i+n]=false; 37 } 38 } 39 } 40 */ 41 42 43 int main(){ 44 int ans[]={0,1,0,0,2,10,4,40,92,352,724}; 45 while(~scanf("%d",&n)&&n){ 46 // memset(num,0,sizeof(num)); 47 // memset(mark,false,sizeof(mark)); 48 // sum=0; 49 // dfs(1); 50 // printf("%d\n",sum); 51 printf("%d\n",ans[n]); 52 } 53 return 0; 54 } 55 56
转载于:https://www.cnblogs.com/wally/archive/2013/05/03/3057291.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 ...
最新文章
- CentOS6:安装JDK
- I am too vegetable to all kill the 51nod problems on level 2 and 3.
- centos7 配置http服务器
- Java后端 + 百度SDK实现人脸识别
- vue element table 相关页面跳转实例代码
- 排序算法部分知识点小结
- Ubuntu16.04下完美切换Python版本
- 并发修改异常ConcurrentModificationException详解
- (MTT)连续能量函数最小化方法
- java 高淇讲的怎么样_反射机制--高淇Java视频笔记
- android webview加载H5链接时 没有加载权限弹框的问题
- i.MX6ULL系统移植 | 移植NXP官方linux4.1.15内核
- 复合型人才八种能力_我国一流大学人才培养目标的特点与问题
- 股票配资系统平台源码搭建-股票配资交易软件开发
- 文件查找工具Everything的上下文菜单配置
- R语言获取丁香园疫情数据动态网站
- (C++)编写一个判别素数的函数,在主函数输入一个整数,输出是否为素数的信息
- 车辆逆行识别检测系统 opencv
- Unity 模拟鼠标点击操作
- 数字信号处理翻转课堂笔记11