当前位置: 首页 > news >正文

[USACO1.5] 八皇后 Checker Challenge Java

import java.util.*;public class Main {// 标记 对角线1,对角线2,所在x轴 是否存在棋子static boolean[] d1 = new boolean[100], d2 = new boolean[100], d = new boolean[100]; static int n, ans = 0;static int[] arr = new int[14]; // 记录一轮棋子位置(x, y)public static void main(String[] args) {Scanner sc = new Scanner(System.in);n = sc.nextInt();sc.close();dfs(1);System.out.println(ans);}static void dfs(int x) {if (x > n) { // 找到一组解ans++;if (ans <= 3) { // 输出前3个解for (int i = 1; i <= n; i++) System.out.print(arr[i] + " ");System.out.println();}return;}for (int y = 1; y <= n; y++) {// 判断两条对角线以及所在x轴是否已经存在棋子if (d[y] || d1[x + y] || d2[x - y + n]) continue; setChecked(x, y, true); // 放置棋子dfs(x + 1); // 下一列继续搜索setChecked(x, y, false); // 重置状态}}static void setChecked(int x, int y, boolean flag) {arr[x] = y; // (x, y)第x行y列放置一颗棋子d[y] = flag;d1[x + y] = flag;d2[x - y + n] = flag;}
}

每日一水~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

http://www.dtcms.com/a/224067.html

相关文章:

  • 业界宽松内存模型的不统一而导致的软件问题, gcc, linux kernel, JVM
  • 【KWDB 创作者计划】_再热垃圾发电汽轮机仿真与监控系统:KaiwuDB 批量插入10万条数据性能优化实践
  • 2.4 TypeScript 中的展开运算符
  • 打造苹果级视差滚动动画:现代网页滚动动画技术详解
  • STM32入门教程——LED闪烁LED流水灯蜂鸣器
  • 【清晰教程】查看和修改Git配置情况
  • Java中Redis面试题集锦(含过期策略详解)
  • 科普:Linux `su` 切换用户后出现 `$` 提示符,如何排查和解决?
  • 论文笔记: Urban Region Embedding via Multi-View Contrastive Prediction
  • leetcode付费题 353. 贪吃蛇游戏解题思路
  • 2025年- H61-Lc169--74.搜索二维矩阵(二分查找)--Java版
  • 【技能拾遗】——家庭宽带单线复用布线与配置(移动2025版)
  • 计算机视觉与深度学习 | 基于Matlab的门禁指纹识别与人脸识别双系统实现
  • 关于TongWeb数据源兼容mysql驱动的注意事项
  • CSS专题之层叠上下文
  • 【前端】SPA v.s. MPA
  • vue3 基本语法 父子关系
  • 设计模式——装饰器设计模式(结构型)
  • HiveSQL语法全解析与实战指南
  • 【大模型部署】mac m1本地部署 ChatGLM3-6B 超详细教程
  • 跟单业务和量化交易业务所涉及到的设计模式
  • 性能优化 - 理论篇:性能优化的七类技术手段
  • C++旅行预算规划 全国信息素养大赛复赛决赛 C++小学/初中组 算法创意实践挑战赛 内部集训模拟题详细解析
  • C++ - STL #什么是STL #STL的版本 #闭源开源 #STL的六大组件
  • 题解:洛谷 P12672 「LAOI-8」近期我们注意到有网站混淆视听
  • Wireshark 使用教程:让抓包不再神秘
  • DeepSeek-R1-0528,官方的端午节特别献礼
  • Go语言中的布尔类型详解
  • 【算法】贪心算法
  • 深拷贝和浅拷贝