P1219 八皇后

题目描述

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

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

行号 1 2 3 4 5 6

列号 2 4 6 1 3 5

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

//以下的话来自usaco官方,不代表洛谷观点

特别注意: 对于更大的N(棋盘大小N x N)你的程序应当改进得更有效。不要事先计算出所有解然后只输出(或是找到一个关于它的公式),这是作弊。如果你坚持作弊,那么你登陆USACO Training的帐号删除并且不能参加USACO的任何竞赛。我警告过你了!

输入输出格式

输入格式:

一个数字N (6 <= N <= 13) 表示棋盘是N x N大小的。

输出格式:

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

输入输出样例

输入样例#1: 复制

6

输出样例#1: 复制

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

说明

题目翻译来自NOCOW。

USACO Training Section 1.5

思路:搜索。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,sum;
int ans[14],check[3][28];
void dfs(int tot){if(tot>n){sum++;if(sum<=3){for(int i=1;i<=n;i++)    printf("%d ",ans[i]);cout<<endl;}return ;}for(int i=1;i<=n;i++)if(!check[0][i]&&!check[1][tot+i]&&!check[2][tot-i+n]){ans[tot]=i;check[0][i]=1; check[1][tot+i]=1; check[2][tot-i+n]=1;dfs(tot+1);check[0][i]=0; check[1][tot+i]=0; check[2][tot-i+n]=0;}
}
int main(){scanf("%d",&n);dfs(1);printf("%d",sum);
}

转载于:https://www.cnblogs.com/cangT-Tlan/p/8092659.html

洛谷 P1219 八皇后相关推荐

  1. 洛谷 P1219 ---- 八皇后

    题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序列2 4 6 1 3 ...

  2. 洛谷——P1219 八皇后

    题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序列2 4 6 1 3 ...

  3. 洛谷 P1219 八皇后题解

    题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序列2 4 6 1 3 ...

  4. 洛谷 P1219八皇后

    题目: 题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子.上面的布局可以用序列2 4 6 ...

  5. Java 洛谷 P1219 八皇后

    题目链接:https://www.luogu.com.cn/problem/P1219 代码实例: import java.util.Scanner; /** * @author: 梁树鹏*/ pub ...

  6. 洛谷 | P1219 八皇后(DFS)C++

    输入 6 输出 2 4 6 1 3 5 3 6 2 5 1 4 4 1 5 2 6 3 4 AC的C++代码如下: 程序分析 (1)flag[1][ ]和flag[2][ ]储存对角线上的棋子分布情况 ...

  7. 深度优先搜索——八皇后问题(洛谷 P1219)

    题目选自洛谷P1219     该题针对6-13皇后都行,只需改动输入的数字. 八皇后问题是经典的DFS问题,唯一需要注意的就是判断能够放置的条件,即满足什么状况是对的. 题目要求不能在同一行,同一列 ...

  8. 洛谷P1219 [USACO1.5]八皇后 Checker Challenge(C语言)

    洛谷P1219 [USACO1.5]八皇后 Checker Challenge 题目 代码 这个八皇后问题也是经典入门深搜的题目了呀,理论上深搜都可以运用数据结构的栈来模拟计算机内部的压栈操作.但这里 ...

  9. P1219 八皇后(N皇后,烧脑标记剪枝,DFS)

    P1219 八皇后 Luogu 应用 题库 训练 比赛 记录 讨论 20.7K 通过 45.7K 提交 题目提供者 评测方式 云端评测 标签 USACO高性能 难度 普及/提高- 时空限制 1000m ...

最新文章

  1. 八种基本类型的包装类你真的懂了?
  2. c语言鼠标下棋,c语言写的鼠标操作的五子棋游戏,欢迎观赏!
  3. Jasypt 加密-整合SpringBoot
  4. 机器学习模型 非线性模型_机器学习模型说明
  5. 程序媛计划——python数据库
  6. 包包的结构制图_15种常见领型的结构制图
  7. android udp rtp播放器,IjkPlayer For Android(3)-RTP直播硬解码支持
  8. Python使用socketServer包搭建简易服务器过程详解
  9. jquery动态改变div宽度和高度
  10. MFC开发IM-第十二篇、MFC改变static text背景色为透明
  11. KDD'21 | 揭秘Facebook升级版语义搜索技术
  12. python3捕获异常_Python 异常处理和捕获信息教程|python3教程|python入门|python教程
  13. VM安装CentOS6-相关NAT上网VM-tools安装
  14. NXP iMX8 SCFW和Boot Container Image编译
  15. 土地利用转移矩阵图怎么做_如何用Arcgis做土地利用转移矩阵?求教各位..._土地估价师_帮考网...
  16. 按计算机应用领域来分 电子邮件属于,计算机考试题库和答案.doc
  17. ESP32编译速度慢问题
  18. 平板xmind怎么添加父主题_XMind8主题使用教程
  19. U盘出现物理故障都有哪些表现
  20. python爬取网易云音乐评论分析_Python爬取网易云音乐评论(附加密算法)

热门文章

  1. 三.Hystrix资源隔离
  2. 检索 COM 类工厂中 CLSID 为 {10020200-E260-11CF-AE68-00AA004A34D5} 的组件时失败,解决方法如下:...
  3. git 学习笔记5--rm mv,undo
  4. string.Format字符串格式化说明(转)
  5. Tomcat 7 Connector 精读(1)
  6. 【android开发】Android防止内存溢出浅析
  7. C# Socket 入门5 UPD 结构体 与 C++ 通信
  8. ROW_NUMBER() 分页
  9. java文件的相对路径_java中使用相对路径读取文件的写法总结 ,以及getResourceAsStream() (转)...
  10. Golang slice原理