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

题解:洛谷 P1219 [USACO1.5] 八皇后 Checker Challenge

【题目来源】

洛谷:[P1219 USACO1.5] 八皇后 Checker Challenge - 洛谷

【题目描述】

一个如下的 \(6×6\) 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。

image

上面的布局可以用序列 \(2\ 4\ 6\ 1\ 3\ 5\) 来描述,第 \(i\) 个数字表示在第 \(i\) 行的相应位置有一个棋子,如下:

行号 \(1\ 2\ 3\ 4\ 5\ 6\)

列号 \(2\ 4\ 6\ 1\ 3\ 5\)

这只是棋子放置的一个解。请编一个程序找出所有棋子放置的解。 并把它们以上面的序列方法输出,解按字典顺序排列。 请输出前 \(3\) 个解。最后一行是解的总个数。

【输入】

一行一个正整数 \(n\),表示棋盘是 \(n\times n\) 大小的。

【输出】

前三行为前三个解,每个解的两个数字之间用一个空格隔开。第四行只有一个数字,表示解的总数。

【输入样例】

6

【输出样例】

2 4 6 1 3 5
3 6 2 5 1 4
4 1 5 2 6 3
4

【解题思路】

image

【算法标签】

《洛谷 P1219 八皇后》 #搜索# #深度优先搜索,DFS# #USACO#

【代码详解】

#include <bits/stdc++.h>
using namespace std;
int n, m1[30]={0}, m2[30]={0}, m3[30]={0}, ans[15]={0}, mark=0;
void setvalue(int x, int y, int k)
{ans[x] = y;  // 记录列的位置m1[y] = k;  // 标记同列m2[x+y] = k;  // 标记同逆对角线m3[x-y+n] = k;  // 标记同顺对角线
}
void dfs(int step)
{if (step>n) {  // 搜索退出条件mark++;  // 记录找到答案的次数if (mark<=3) {  // 不能超过3次for (int i=1; i<=n; i++) {  // 遍历所有列cout << ans[i] << " ";  // 输出每列的值}cout << endl;  // 每列输出完后需要换行}return;}for (int j=1; j<=n; j++) {  // 遍历n列(step代表行)if (m1[j] || m2[step+j] || m3[step-j+n]) continue;  // 选中某个位置后,就固定同列,同逆,同顺位置,再次搜索时,如果这些位置为1则跳过,(step-j+n)可以保证永远不会小于0setvalue(step, j, 1);  // 根据行和列的位置,进行标记dfs(step+1);  // 继续搜索setvalue(step, j, 0);  // 还原现场}
}
int main()
{cin >> n;  // 输入ndfs(1);  // 进行dfs深搜cout << mark << endl;return 0;
}

【运行结果】

6
2 4 6 1 3 5
3 6 2 5 1 4
4 1 5 2 6 3
4
http://www.jsqmd.com/news/390104/

相关文章:

  • 题解:洛谷 P1443 马的遍历
  • 【GitHub项目推荐--ORB-SLAM3:开源视觉、视觉惯性及多地图SLAM库】
  • 污水处理系统中组态王6.55与三菱PLC联机仿真OPC通讯优化之旅
  • Photoshop - Photoshop 工具栏(63)注释工具
  • 题解:洛谷 P3853 [TJOI2007] 路标设置
  • 静态无功补偿器(SVC)仿真模型 采用静态无功补偿器(SVC)对一个500kv, 3000mv...
  • 春晚机器人与中国未来100年发展
  • Photoshop - Photoshop 工具栏(64)计数工具
  • 题解:洛谷 P3743 小鸟的设备
  • 题解:洛谷 P2678 [NOIP 2015 提高组] 跳石头
  • 构建跨行业三维空间智能治理中枢——矩阵视频融合 × 三角测量 × 数字孪生驱动全域风险前置控制
  • 论文阅读:arxiv 2025 Jailbreaking Attacks vs. Content Safety Filters: How Far Are We in the LLM Safety Ar
  • 复杂场景三维空间主动风险防控与智能调度系统——基于矩阵视频融合的空间级安全感知底座技术白皮书
  • 题解:洛谷 P1163 银行贷款
  • 题解:洛谷 P1182 数列分段 Section II
  • 正规的美团礼品卡回收平台推荐 - 京顺回收
  • 题解:洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树
  • 题解:洛谷 P2440 木材加工
  • 【LeetCode 每日一题】3314. 构造最小位运算数组 I —— (解法二) - 详解
  • 题解:洛谷 P1102 A-B 数对
  • Smoke and Mirrors inspiration
  • 这个时间序列预测模型有点意思,直接上代码更直观。咱们先看看整个模型的架构长啥样
  • 题解:洛谷 P1678 烦恼的高考志愿
  • 行业内服务好的盒马鲜生礼品卡回收平台推荐 - 京顺回收
  • 题解:洛谷 P1024 [NOIP 2001 提高组] 一元三次方程求解
  • 题解:洛谷 P2249 【深基13.例1】查找
  • 信任就是最好的协作:openclaw的系统提示词分析
  • AI大模型高薪方向揭秘:大模型时代,小白也能弯道超车?高薪收藏帖+90天转型路线图免费领!
  • 大模型国家标准落地,大模型应用指南:小白也能掌握的金融科技新趋势,收藏学习必备!
  • 阿里通义千问团队揭秘Gated Attention,让你的大模型学习效率飙升,速收藏!