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. xcode Automatic signing is unable to resolve an issue with the "ShowCar-IOS" target's entitlements

    1.https://stackoverflow.com/questions/37806538/code-signing-is-required-for-product-type-application ...

  2. 深度学习实战篇-基于RNN的中文分词探索

    深度学习实战篇-基于RNN的中文分词探索 近年来,深度学习在人工智能的多个领域取得了显著成绩.微软使用的152层深度神经网络在ImageNet的比赛上斩获多项第一,同时在图像识别中超过了人类的识别水平 ...

  3. 框架:Rureka

    ylbtech-框架:Rureka Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.S ...

  4. Java数组和内存控制

    1.数组初始化 1.1 Java数组是静态的 Java语言是典型的静态语言,因此Java的数组是静态的,即当数组被初始化之后,该数组的长度是不可变的.Java程序中的数组必须经初始化才可使用.所谓初始 ...

  5. Gym-101915J The Volcano Eruption 计算几何

    题面 题意:给你一个矩阵,然后有很多的圆,这些圆可能相交着,一个或者几个就导致这个矩形被分割开了,就是从最下面的边到上面的边,连线被这些圆阻隔了,每一堆圆当做一个阻碍,问一共有几个阻碍 题解:看起来好 ...

  6. typescript 基本数据类型

    1.boolen 布尔类型 let boolen1: boolen = false; 2.number 数字类型 let num1: number = 0b110;//二进制 let num2: nu ...

  7. PyQt5.9 Html与本地代码交互实例

    在PyQt5.9中, 应用QWebEngineView和QWebChannel技术, 可以进行HTML与本地代码进行交互. 要点: 创建交互对象, 基于QObject, 定义信息槽 创建QWebCha ...

  8. 依赖注入与Service Locator

    为什么需要依赖注入? ServiceUser是组件,在编写者之外的环境内被使用,且使用者不能改变其源代码. ServiceProvider是服务,其类似于ServiceUser,都要被其他应用使用,不 ...

  9. Linux下打包、压缩和解压

    命令使用:tar  主选项+辅选项  压缩后文件名  要压缩的文件 -c 建立压缩文件(常用) -x 解压(常用) -t 查看压缩文件(常用) -r 向压缩文件末尾追加文件 -u 更新一个压缩包中的文 ...

  10. 第一课 导入库 - 创建数据集 - CSV读取 - 导出 - 查找最大值 - 绘制数据

    第1课 创建数据 - 我们从创建自己的数据集开始分析.这可以防止阅读本教程的最终用户为得到下面的结果而不得不下载许多文件.我们将把这个数据集导出到一个文本文件中,这样您就可以获得从文本文件中一些拉取数 ...