题目链接

http://acm.hdu.edu.cn/showproblem.php?pid=2553

题意

n<=10,输出N皇后问题的方法数。

题解

  • 可以使用各种方法。这里使用DFS。
  • 使用一维数组存储棋子位置。col[i]=j表示第i行的棋子放置在j列。
  • 由于n<=10,打表10个结果在数组中即可。
  • dfs(row)表示放置第row层(从0记)的棋子。dfs return条件是到了第n层,此时方法数++;

代码

import java.util.Scanner;

public class Main {
final static int MAXN=10;
public static int[] means=new int[MAXN+1];
public static int[] col=new int[MAXN+1]; public static void main(String args[]) {
//打表
for(int i=1;i<=MAXN;++i) {
means[i]=0;
}
for(int n=1;n<=MAXN;++n) {
dfs(0,n);
} Scanner in=new Scanner(System.in);
int n;
while(true) {
n=in.nextInt();
if(n==0) {break;}
System.out.println(means[n]);
}
} public static void dfs(int row,int n) {
if(row==n) {
++means[n];
return;
}
for(int j=0;j<n;++j) {
col[row]=j;
if(check(row,n)==true) {
dfs(row+1,n);
}
}
} public static boolean check(int row,int n) {
for(int i=0;i<row;++i) {
if(col[i]==col[row]||Math.abs(i-row)==Math.abs(col[i]-col[row])) {
return false;
}
}
return true;
}
}

[HDU2553]N皇后问题(DFS)的更多相关文章

  1. HDU2553 N皇后问题——DFS

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

  2. HDU2553 N皇后问题---(dfs)

    http://acm.hdu.edu.cn/showproblem.php?pid=2553 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在 ...

  3. hdu2553 N皇后问题(dfs+回溯)

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

  4. 八皇后(dfs+回溯)

    重看了一下刘汝佳的白板书,上次写八皇后时并不是很懂,再写一次: 方法1:逐行放置皇后,然后递归: 代码: #include <bits/stdc++.h> #define MAXN 8 # ...

  5. hdu2553 N皇后问题

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

  6. HDOJ2553-N皇后问题(DFS)

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

  7. n皇后问题<dfs>

    n皇后问题指的是: n*n的国际象棋棋盘上摆放n个皇后,使其不能互相攻击, 即任意两个皇后都不能处于同一行.同一列或同一斜线上, 问有多少种摆法. 和一般n皇后问题不同的是,现在棋盘上有可能已经放了一 ...

  8. 八皇后问题 dfs/递归

    #include <bits/stdc++.h> using namespace std; const int maxn = 55; int ans=0; int vis_Q[maxn]; ...

  9. 蓝桥杯 算法提高 8皇后·改 -- DFS 回溯

      算法提高 8皇后·改   时间限制:1.0s   内存限制:256.0MB      问题描述 规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大. 输入格式 一个8*8 ...

随机推荐

  1. Enumerable 下又有新的扩展方法啦,快来一起一睹为快吧

    一:背景 1. 讲故事 前段时间将公司的一个项目从 4.5 升级到了 framework 4.8 ,编码的时候发现 Enumerable 中多了三个扩展方法: Append, Prepend, ToH ...

  2. gtk.Builder.AddFromFile SIGSEGV.

    可能是由于GTK没有初始化的缘故,在程序开头加上gtk.Init(nil)进行初始化 或者参考我这篇博客就不会出错了

  3. Golang gRPC学习(04): Deadlines超时限制

    为什么要使用Deadlines 当我们使用gRPC时,gRPC库关系的是连接,序列化,反序列化和超时执行.Deadlines 允许gRPC客户端设置自己等待多长时间来完成rpc操作,直到出现这个错误 ...

  4. LOJ10048. 「一本通 2.2 练习 4」Censoring

    作者是个* 题目描述 原题来自:USACO 2015 Feb. Silver 给出两个字符串\(S\)和\(T\),每次从前往后找到\(S\)的一个子串\(T\)并将其删除,空缺位依次向前补齐,重复上 ...

  5. 在.NET Core中使用MongoDB明细教程(3):Skip, Sort, Limit, Projections

    到目前为止,我们已经讨论了创建文档, 检索文档,现在让我们来研究一下文档排序,指定要跳过或限制返回的文档数量,以及如何进行投影.此篇文章中的实例代码摘录自原文,未像前几篇文章一样进行实际代码的验证. ...

  6. 痞子衡嵌入式:解锁i.MXRTxxx上FlexSPI模块自带的地址重映射(Remap)功能

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT三位数系列隐藏的FlexSPI Remap功能. 前段时间痞子衡写了一篇文章 <利用i.MXRT1060,1010上新 ...

  7. MySQL经典练习题及答案,常用SQL语句练习50题

    表名和字段 –1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程表 Course(c_id,c_name,t_id ...

  8. max user processes 导致的服务器大量close_wait问题解决过程

    1.背景: 由于现网业务量增长过快,需要扩容应用程序服务器,分担来自前端的访问压力. 2.故障: 部署好业务启动程序后,发现程序运行一小会后不产生新的日志和数据. 3.查问题过程: 1.首先查看程序运 ...

  9. 第7篇scrum冲刺(5.27)

    一.站立会议 1.照片 2.工作安排 成员 昨天已完成的工作 今天的工作安排 困难 陈芝敏  学习云开发,云函数调用以及数据的前后端传递  今天实现云词库搭建,随机获取并显示,对云开发有更深的认识   ...

  10. NeuroAttack: Undermining Spiking Neural Networks Security through Externally Triggered Bit-Flips

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:2005.08041v1 [cs.CR] 16 May 2020 Abstract 由于机器学习系统被证明是有效的,因此它被广 ...