Problem Description
在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即随意2个皇后不同意处在同一排,同一列,也不同意处在与棋盘边框成45角的斜线上。
你的任务是。对于给定的N,求出有多少种合法的放置方法。

 

Input
共同拥有若干行。每行一个正整数N≤10,表示棋盘和皇后的数量;假设N=0。表示结束。
 

Output
共同拥有若干行。每行一个正整数,表示相应输入行的皇后的不同放置数量。
 

Sample Input

1
8
5
0
 

Sample Output

1
92
10
 

直接求会超时。打个表就不会了。。。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[20],ans,n,f[20]; void dfs(int cnt)
{
if(cnt==n) {
ans++;
return ;
}
for(int i=0;i<n;i++) {
int ok=1;
a[cnt]=i;
for(int j=0;j<cnt;j++) {
if(a[cnt]==a[j] || cnt-a[cnt]==j-a[j] || cnt+a[cnt]==j+a[j]) {
ok=0;
break;
}
}
if(ok) dfs(cnt+1);
}
} int main()
{
int i,j;
for(n=1;n<=11;n++) {
ans=0;
memset(a,0,sizeof(a));
dfs(0);
f[n]=ans;
}
while(scanf("%d",&n)==1 &&n) {
cout<<f[n]<<endl;
}
return 0;
}

HDU 2553 N皇后问题 (DFS_回溯)的更多相关文章

  1. [HDU 2553]--N皇后问题(回溯)/N皇后问题的分析

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2553 N皇后问题 Time Limit: 2000/1000 MS (Java/Others)     ...

  2. HDU 2553 n皇后问题(回溯法)

     DFS Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Description ...

  3. HDU 2553 N皇后问题(回溯 + 剪枝)

    本文链接:http://i.cnblogs.com/EditPosts.aspx?postid=5398797 题意: 在N*N(N <= 10)的方格棋盘放置了N个皇后,使得它们不相互攻击(即 ...

  4. HDU 2553(N皇后)(DFS)

    http://acm.hdu.edu.cn/showproblem.php?pid=2553 i表示行,map[i]表示列,然后用DFS遍历回溯 可以参考这篇文章: http://blog.csdn. ...

  5. hdu 2553 N皇后问题

    回溯. 一个主对角线,副对角线的技巧 //vis[0][i]表示第i列有没有皇后 vis[1][cur+i]表示副对角线 vis[2][cur-i+n]表示主对角线 #include <cstd ...

  6. hdoj 2553 N皇后问题【回溯+打表】

    N皇后问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  7. HDU 2553 N皇后问题(详细题解)

    这是一道深搜题目!问题的关键是在剪枝. 下面我们对问题进行分析: 1.一行只能放一个皇后,所以我们一旦确定此处可以放皇后,那么该行就只能放一个皇后,下面的就不要再搜了. 2.每一列只能放一个皇后,所以 ...

  8. hdu 2553 N皇后问题 (经典DFS)

    题目链接:点击链接 思路:用一维数组hang[num] = i,num表示第num行,i表示第i列,计算n = 1~10皇后的不同放置数量,然后打表 #include<stdio.h> # ...

  9. HDU 2553 N皇后问题(dfs)

    N皇后问题 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description 在 ...

随机推荐

  1. 为了世界的和平~一起上caioj~~~!

    打Call~打Call~打Call~~~!!! 世界毁灭了你在哪???不要犹豫,快去caioj!!! 无比优质的oj,未来大牛的明智之选----就是caioj~~~

  2. DDos攻击,使用深度学习中 栈式自编码的算法

    转自:http://www.airghc.top/2016/11/10/Dection-DDos/ 最近研究了一篇论文,关于检测DDos攻击,使用了深度学习中 栈式自编码的算法,现在简要介绍一下内容论 ...

  3. JavaScript:对象

    ylbtech-JavaScript:对象 1. JavaScript Array 对象返回顶部 1. JavaScript Array 对象 Array 对象 Array 对象用于在变量中存储多个值 ...

  4. mysql的递归(使用函数)

    getChildList: BEGIN #声明两个局部变量 ); ); #初始化局部变量 SET sTemp = ''; #调用cast函数将int转换为char SET sTempChd = roo ...

  5. 参数转对象 类似 ?camera=1&travel=0&faceScore=1

    parseQueryString(url) { var obj = {}; var keyvalue = []; var key = "", value = "" ...

  6. MySQL定时任务与存储过程实例

    shell 定时任务:​/usr/bin/mysql -uroot -pxxxxx databasename -e "update table set ......."​​mysq ...

  7. bootstrap初用新得1

    ## 基本准备 1. 首先把相关软件窗口规划好,对于我的喜好,我喜欢把除了浏览器外的其他软件分为左右两个半屏.左边和右边很多软件之间是需要配合使用的:     * 左边: scss文件,ps的guid ...

  8. sqlserver 时间测试

    select * from GropBy where [date] BETWEEN '2010-10' and '2015-10' --从字符串转换日期和/或时间时,转换失败. select * fr ...

  9. form-control给input添加这个class类后就会使用bootstrap自带的input框

    <input type="text" class="form-control" id="name" placeholder=" ...

  10. Spring cloud父项目的建立

    1.建立一个maven项目 注意建立项目的时候.选择pom的包 2.添加架包 <project xmlns="http://maven.apache.org/POM/4.0.0&quo ...