【wikioi】1295 N皇后问题
算法:DFS
刚开始卡了我一下,我竟然傻到用二维来放皇后= =。导致一直TLE。。。。
其实用1维就行了的,下标为行(列),值为列(行)
我是用下标为列做的。
上代码
#include <iostream> using namespace std;
int n, ans = 0;
int map[14];
void dfs(int x)
{
if(x > n) {ans++; return;}
int i, j;
for(i = 1; i <= n; i++) //放在某行
{
map[x] = i;
for(j = 1; j < x; j++) //判断前面列是否有重合,直接判断横行 和 斜行 (可自己画图为什么判断斜行成立)
if((map[j] == map[x]) ||
(x-map[x] == j-map[j] || x+map[x] == j+map[j]))
break;
if(j == x)
dfs(x+1);
}
} int main()
{
cin >> n;
dfs(1);
cout << ans;
return 0;
}
【wikioi】1295 N皇后问题的更多相关文章
- 1295 N皇后问题
		
题目描述 Description 在n×n格的棋盘上放置彼此不受攻击的n个皇后.按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子.n后问题等价于再n×n的棋盘上放置n个皇后,任 ...
 - 递归实现n(经典的8皇后问题)皇后的问题
		
问题描述:八皇后问题是一个以国际象棋为背景的问题:如何能够在8×8的国际象棋棋盘上放置八个皇后, 使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行.纵行或斜线上 ...
 - 八皇后算法的另一种实现(c#版本)
		
八皇后: 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于 ...
 - [LeetCode] N-Queens II N皇后问题之二
		
Follow up for N-Queens problem. Now, instead outputting board configurations, return the total numbe ...
 - [LeetCode] N-Queens N皇后问题
		
The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens ...
 - N皇后问题—初级回溯
		
N皇后问题,最基础的回溯问题之一,题意简单N*N的正方形格子上放置N个皇后,任意两个皇后不能出现在同一条直线或者斜线上,求不同N对应的解. 提要:N>13时,数量庞大,初级回溯只能保证在N< ...
 - 数据结构0103汉诺塔&八皇后
		
主要是从汉诺塔及八皇后问题体会递归算法. 汉诺塔: #include <stdio.h> void move(int n, char x,char y, char z){ if(1==n) ...
 - N皇后问题
		
题目描述 在n×n格的棋盘上放置彼此不受攻击的n个皇后.按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子.n后问题等价于再n×n的棋盘上放置n个后,任何2个皇后不妨在同一行或同 ...
 - LeetCode:N-Queens I II(n皇后问题)
		
N-Queens The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no tw ...
 
随机推荐
- 2015安徽省赛 F.多重部分和问题
			
题目描述 有n种不同大小的数字,每种各个.判断是否可以从这些数字之中选出若干使它们的和恰好为K. 输入 首先是一个正整数T(1<=T<=100) 接下来是T组数据 每组数据第一行是一个正整 ...
 - HDU  2895 编辑距离
			
#include<stdio.h> #include<iostream> #include<string.h> #include<algorithm> ...
 - twisted udp编程
			
概述 Unlike TCP, UDP has no notion of connections. A UDP socket can receive datagrams from any server ...
 - 菜单栏展开和收起效果(纯js)
			
2014年6月25日 15:36:29 需要关注的是: 1.用cookie保存用户当前点击的菜单项,不打扰后端代码 2.通过数学计算得到要显示和隐藏的div 3.点击事件是动态绑定到a标签上的,因此当 ...
 - php 今天 昨天 明天 时间戳
			
2013年9月10日 16:26:25 echo strtotime('now'),'<br>'; echo strtotime('today'),'<br>'; echo s ...
 - KMP模式匹配练习题
			
使用KMP算法在文本串S中找模式串P是一种常见的方法.假设S=P={xyxyyxxyx},亦即将S对自己进行匹配,匹配过程中正确的next数组是____. 1.首先求最大相同前缀后缀长度 模式串的各个 ...
 - rsync   --exclude 参数
			
/usr/bin/rsync -vr --exclude=".svn" --exclude="temp" --delete /alidata/www/pro/e ...
 - CentOS 6.5 下安装 Elasticsearch 5
			
安装最新的 Elasticsearch 5 需要Java 8.所有先要确定环境中是否有Java 8.如果没有则需要安装. 1. 安装Java 8 首先使用 yum list installed | g ...
 - CI框架获取post和get参数_CodeIgniter心得
			
请参考:CI文档的输入类部分: $this->input->post() $this->input->get() ------------------------------- ...
 - 【转】解决编译Apache出现的问题:configure: error: APR not found . Please read the documentation
			
这里写的很清楚了,已验证可用 http://blog.csdn.net/linghao00/article/details/7926458