C - N皇后问题(搜索)
Description
你的任务是,对于给定的N,求出有多少种合法的放置方法。
Input
Output
Sample Input
8
5
0
Sample Output
92
10
/*
注意:1:写死循环要么注意跳出条件,要么就别写
2: 复制粘贴的前面用的代码的时候一定记得把所有需要修改的条件都改了
*/ #include <stdio.h>
#include <string.h>
using namespace std;
int cnt, n;
int vis[][]; void dfs(int x)
{
if(x == n+)
{
cnt++;
return;
}
for(int i = ; i <= n; i++) ////////////////////////////////////////
{
if(!vis[x][i])
{
for(int j = x; j <= n; j++)
{
vis[j][i]++;
}
for(int j = ; ; j++)
{
if(x+j <= n)
{
if(i+j <= n)
vis[x+j][i+j]++;
if(i - j >= )
vis[x+j][i-j]++;
}
else
break;//////////////////////////////////////////////////////
}
dfs(x+);
for(int j = x; j <= n; j++)
vis[j][i]--;
for(int j = ; ; j++)
{
if(x+j <= n)
{
if(i+j <= n)
vis[x+j][i+j]--;
if(i - j >= )
vis[x+j][i-j]--;
}
else
break;/////////////////////////////////////////////////////////////////
}
}
}
}
int main()
{
int ans[], i;
memset(ans, , sizeof(ans));
for(i = ; i <= ; i++)
{
n = i;
cnt = ;
memset(vis, , sizeof(vis));
dfs();
ans[i] = cnt;
//printf("ans[%d] = %d\n", i, ans[i]);
}
while(scanf("%d", &n), n)
printf("%d\n", ans[n]);
return ;
}
C - N皇后问题(搜索)的更多相关文章
- [ An Ac a Day ^_^ ] hdu 2553 N皇后问题 搜索
曾经想过一天一AC 坚持下来的确不容易额 (我是没坚持下来 尽量以后坚持…… 经典的N皇后问题 搜索的入门问题 学了这么久竟然一直没敲过 今天敲一下…… 这道题也不是很简单额 纯暴力就超时了 要打一下 ...
- OpenJudge1700:八皇后问题 //不属于基本法的基本玩意
1700:八皇后问题//搜索 总时间限制: 10000ms 内存限制: 65536kB 描述 在国际象棋棋盘上放置八个皇后,要求每两个皇后之间不能直接吃掉对方. 输入 无输入. 输出 按给定顺序和 ...
- BASIC-27_蓝桥杯_2n皇后问题
题目: 问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行.同一 ...
- N皇后解法以及位运算优化
N皇后解法以及位运算优化 观察棋盘,要求皇后之间不能处在同行同列同一条斜线,求使得每行都有一个皇后的放置方法共有多少种. 每尝试放置一个皇后,都可以把该位置所在的行.列标号用一个数组标记,含义表示该行 ...
- BZOJ 1087 互不侵犯King (位运算)
题解:首先,这道题可以用位运算来表示每一行的状态,同八皇后的搜索方法,然后对于限制条件不相互攻击,则只需将新加入的一行左右移动与上一行相&,若是0则互不攻击,方案可行.对于每种方案,则用递推来 ...
- LeetCode: 【L4】N-Queens 解题报告
[L4]N-Queens 解题报告 N-Queens Total Accepted: 16418 Total Submissions: 63309 My Submissions The n-queen ...
- 算法设计与分析——n后问题(回溯法+位运算)
一.问题描述 在n×n格的国际象棋上摆放n个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法. 二.算法设计 解n后问题的回溯算法描述如下: #include ...
- N皇后//搜索入门
P1080 N皇后 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列只有一个,每条 ...
- HDU(搜索专题) 1000 N皇后问题(深度优先搜索DFS)解题报告
前几天一直在忙一些事情,所以一直没来得及开始这个搜索专题的训练,今天做了下这个专题的第一题,皇后问题在我没有开始接受Axie的算法低强度训练前,就早有耳闻了,但一直不知道是什么类型的题目,今天一看,原 ...
随机推荐
- List<T>到XML的序列化与反序列化
原文 http://hi.baidu.com/shishengli1234/item/f0536f36335390c22f8ec24b Model.RESE_SCH sch1 = new Model. ...
- 教你看懂C++类库函数定义之三---_stdcall
一切从一个C++ 类库头文件开始,现在在做一个C++的项目,期间用到一个开源的界面库DUILib(类似MFC),这个东西还不错能很容易的写出漂亮的界面,比如QQ的界面,可以去下载下来研究研究,地址:h ...
- EGit with eclipse to clone project from GitHub(Step by step)
转载请注明出处! 1. To find your project URL inside GitHub: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWF ...
- 315M无线发射模块天线的长度计算
波长=光速/频率=300/315=0.952米 1/4波长须要的天线长度=波长*1/4=0.952/4=0.238米 考虑导线传播高频信号的缩短率在0.98左右,因此天线长度=0.238*0.98=0 ...
- Libcurl安装及编译
1.安装curl wget http://curl.haxx.se/download/curl-7.26.0.tar.gz tar -zxvf curl-7.26.0.tar.gz cd curl- ...
- webservice跨域上传图片
1.上传文件,在一般处理程序中处理 //1.接收post过来的文件 HttpPostedFile file = context.Request.Files[]; || file.ContentLeng ...
- WebApi个人理解概要
WebApi概要 Global文件的作用: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public class MvcApplication : System.We ...
- 重定向输入输出流--freopen
freopen是被包含于C标准库头文件<stdio.h>中的一个函数,用于重定向输入输出流.该函数可以在不改变代码原貌的情况下改变输入输出环境. C99函数声明: FILE *freope ...
- hdu1114小猪抢劫银行
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1114 完全背包 题意:给出小猪钱罐的重量和装满钱后的重量,然后是几组数据,每组数据包括每种钱币的价值与重量 ...
- 百度下载google 浏览器安装失败
installer integrity check has failed. Common causes include incomplete download and damaged media co ...