目录标题

  • 题目描述
  • 解题思路
  • 代码

题目描述

地球人都知道,在国际象棋中,后如同太阳,光芒四射,威风八面,它能控制横、坚、斜线位置。
  看过清宫戏的中国人都知道,后宫乃步步惊心的险恶之地。各皇后都有自己的势力范围,但也总能找到相安无事的办法。
  所有中国人都知道,皇权神圣,伴君如伴虎,触龙颜者死…
  现在有一个n*n的皇宫,国王占据他所在位置及周围的共9个格子,这些格子皇后不能使用(如果国王在王宫的边上,占用的格子可能不到9个)。当然,皇后也不会攻击国王。
  现在知道了国王的位置(x,y)(国王位于第x行第y列,x,y的起始行和列为1),请问,有多少种方案放置n个皇后,使她们不能互相攻击。

输入
输入描述:
  一行,三个整数,皇宫的规模及表示国王的位置
输入样例:
8 2 2

输出

输出描述:
  一个整数,表示放置n个皇后的方案数
输出样例:
10

HINT:时间限制:1.0s 内存限制:256.0MB
  n<=12

解题思路

在输入相应的位置后,依次判断各个皇后距离国王和相互之间的距离就行了,注意若两个皇后之间的距离小于或等于1就放弃,重新排列。

代码

import java.util.Scanner;public class Main {private static int[] pos;private static int x;private static int y;private static int cnt;public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();pos = new int[n];x = in.nextInt() - 1;y = in.nextInt() - 1;in.close();dfs(0, n);System.out.println(cnt);}private static boolean isSafe(int row) {if (Math.abs(row - x) <= 1 && Math.abs(pos[row] - y) <= 1) {return false;}for (int i = 0; i < row; i++) {if (pos[row] == pos[i] || row - i == Math.abs(pos[row] - pos[i])) {return false;}}return true;}private static void dfs(int row, int n) {if (row >= n) {cnt++;return;}for (pos[row] = 0; pos[row] < n; pos[row]++) {if (isSafe(row)) {dfs(row + 1, n);}}}
}

Java 算法 王、后传说相关推荐

  1. 蓝桥杯 算法训练 王,后传说

    题目: 算法训练 王.后传说   时间限制:1.0s   内存限制:256.0MB      问题描述 地球人都知道,在国际象棋中,后如同太阳,光芒四射,威风八面,它能控制横.坚.斜线位置. 看过清宫 ...

  2. Java算法:华为机试算法(下),华为算法Java版,牛客网华为算法73~108题

    接上篇:Java算法:华为机试算法(中),华为算法Java版,牛客网华为算法55~72题   HJ73 计算日期到天数转换 计算日期到天数转换 题目描述 根据输入的日期,计算是这一年的第几天.. 测试 ...

  3. 面试 | Java 算法的 ACM 模式

    Java 算法的 ACM 模式 前言 1. 数字处理 1.1 多组空格分隔的两个正整数 1.2 第一行组数接空格分隔的两个正整数 1.3 空格分隔的两个正整数为0 0 结束 1.4 每行第一个为个数后 ...

  4. java使用泛型后消除泛型_如何以及何时使用泛型

    java使用泛型后消除泛型 本文是我们名为" 高级Java "的学院课程的一部分. 本课程旨在帮助您最有效地使用Java. 它讨论了高级主题,包括对象创建,并发,序列化,反射等. ...

  5. 悲哀!面试现场,简单几道java算法题,90%程序员没写出来

    这两天小编逛论坛的时候发现一个很有意思的事情,就是一位互联网公司的面试官分享的,他们最近想招一批java的实习生,所以他们的面试题并不难,但是前来面试的人,却很多都挂在了几道算法题上,要么就是逻辑不严 ...

  6. JAVA算法:解救小哈(JAVA版)

    JAVA算法:解救小哈(JAVA版) 有一天,小哈一个人去玩迷宫.但是方向感不好的小哈很快就迷路了.小哼得知后便去解救无助的小哈.此时的小哼已经弄清楚了迷宫的地图,现在小哼要以最快的速度去解救小哈.那 ...

  7. 我整理了50道经典Java算法题,直接进了字节跳动!!

    写在前面 最近,很多小伙伴都想进入字节跳动这个快速发展的公司,而字节跳动对于算法的要求比较高.于是乎,有些小伙伴问我能否整理一些基础的算法题,帮助他们提升下基础算法能力.我:没问题啊!于是,经过半个多 ...

  8. Java算法学习:蓝桥杯——地宫寻宝(DFS+动态规划—记忆型递归)

    Java算法学习:蓝桥杯--地宫寻宝(DFS✖记忆型递归) 题目: 标题:地宫取宝X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签.地宫的入口在左上角,出 ...

  9. Java算法题:Z字形变换

    Java算法题:Z字形变换 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "PAYPALISHIRING" 行 ...

最新文章

  1. C++类型转换(翻译自cplusplus)
  2. python中pandas格式_Python学习笔记之数据分析中Pandas常用知识
  3. SQL Server:APPLY表运算符
  4. DDD CQRS架构和传统架构的优缺点比较
  5. 《数据库系统实训》实验报告——触发器
  6. nginx集群_windows环境下搭建简单Nginx+Tomcat集群
  7. redis持久化之rdb篇
  8. 百度地图加载空白颜色_详细解析百度收录和百度排名关系
  9. python自动化办公模块_Python 自动化办公之 Excel 模块 — openpyxl 的基本使用!
  10. python+webdriver(二)
  11. 嵌入式开发|STM32工程中添加Bootloader实现串口程序下载
  12. request爬虫爬取电影并利用pyqt5进行本地播放(失败品)
  13. docker容器2:镜像制作
  14. 关于XAMPP Apache 启动失败的问题
  15. ARM 汇编语言程序设计
  16. 计算机网络五层模型(ing)
  17. Unity_检测颜色相似度
  18. css设置背景图片模糊,内容不模糊
  19. 百度搜索简单使用 以及 搜书网址
  20. 解决:Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone valu

热门文章

  1. 计算机组成与体系结构——计算机结构——2020.11.19
  2. cr2032和br2032区别_钮扣电池CR2016和CR2032有什么区别?
  3. 3dmax物体轴心点坐标和unity3d不一样_Unity3D新手必看:几个让你相见恨晚的小技巧...
  4. python 贴吧自动发帖_python接口自动化3-自动发帖(session)
  5. tensorflow2.0 图像处理项目_游戏爱好者应该看看这个开源项目
  6. Java:实验四第5题
  7. keil4怎么移植其他人的程序_关节炎怎么治疗效果才会好?
  8. Keras-1 学习Keras,从Hello World开始
  9. 10年老兵给程序员的10条建议! 1
  10. Nginx使用教程(八):使用Nginx缓存之Memcached缓存