当前位置: 首页 > 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;}
}

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

相关文章:

  • 业界宽松内存模型的不统一而导致的软件问题, 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 超详细教程
  • 单页面网站开发/seo网站推广公司
  • 北京的网站建设公司有哪些/优化关键词排名seo软件
  • wordpress 菜单 标题属性/seo搜索引擎排名优化
  • 佳木斯做网站公司/网站设计公司
  • asp网站做搜索/在线seo优化
  • 装修设计那个网站好/seo做什么网站赚钱