【USACO题库】1.5.4 Checker Challenge跳棋的挑战
题目描述
检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行,每列,每条对角线(包括两条主对角线的所有对角线)上都至多有一个棋子。
列号
1 2 3 4 5 6
-------------------------
1 | | O | | | | |
-------------------------
2 | | | | O | | |
-------------------------
3 | | | | | | O |
-------------------------
4 | O | | | | | |
-------------------------
5 | | | O | | | |
-------------------------
6 | | | | | O | |
-------------------------
上面的布局可以用序列2 4 6 1 3 5来描述,第i个数字表示在第i行的相应位置有一个棋子,如下:
行号 1 2 3 4 5 6
列号 2 4 6 1 3 5
这只是跳棋放置的一个解。请遍一个程序找出所有跳棋放置的解。并把它们以上面的序列方法输出。解按字典顺序排列。请输出前3个解。最后一行是解的总个数。
特别注意: 对于更大的N(棋盘大小N x N)你的程序应当改进得更有效。不要事先计算出所有解然后只输出,这是作弊。如果你坚持作弊,那么你登陆USACO Training的帐号将被无警告删除
输入
一个数字N (6 <= N <= 13) 表示棋盘是N x N大小的。
输出
前三行为前三个解,每个解的两个数字之间用一个空格隔开。第四行只有一个数字,表示解的总数。
样例输入
6
样例输出
2 4 6 1 3 5 3 6 2 5 1 4 4 1 5 2 6 3 4
题目最后说的我。。。嗯
跳棋的挑战 NO
N 皇后问题 YES
在N皇后问题的基础上保存状态
#include <bits/stdc++.h>
using namespace std;
int n, ans = 0, a[101][101];
bool bz[101], bz1[101], bz2[101];void dfs(int x)
{if (x > n){ans++;if (ans <= 3){for (int i = 1; i <= n; i++){for (int j = 1; j <= n; j++)if (a[i][j] > 0)printf("%d ", a[i][j]);}printf("\n");}}else{for (int i = 1; i <= n; i++){if (bz[i] == 0 && bz1[x + i] == 0 && bz2[x - i + n] == 0){bz[i] = 1;bz1[x + i] = 1;bz2[x - i + n] = 1;a[x][i] = i;dfs(x + 1);bz[i] = 0;bz1[x + i] = 0;bz2[x - i + n] = 0;a[x][i] = 0;}}}
}main()
{freopen("checker.in", "r", stdin);freopen("checker.out", "w", stdout);scanf("%d", &n);dfs(1);printf("%d", ans);return 0;
}
不写了不写了~
【USACO题库】1.5.4 Checker Challenge跳棋的挑战相关推荐
- 【USACO题库】3.4.4 Raucous Rockers“破锣摇滚”乐队 题解
[USACO题库]3.4.4 Raucous Rockers"破锣摇滚"乐队 题解 你刚刚继承了流行的"破锣摇滚"乐队录制的尚未发表的N(1 <= N ...
- 【USACO题库】1.2.1 Milking Cows挤牛奶
一开始认为过不了,后来交就AC了. 1007. [USACO题库]1.2.1 Milking Cows挤牛奶 (File IO): input:milk.in output:milk.out 题目描述 ...
- 【USACO题库】1.4.2 The Clocks时钟.TJ
标题的简介: [USACO题库]1.4.2 The Clocks--Tj https://jzoj.net/junior/#contest/show/1232/11(下文题目描述还是原地址清楚) 考虑 ...
- 最简单的USACO,没有之一:【USACO题库】1.3.4 Prime Cryptarithm牛式
欢迎收看: 保障电脑安全 拒绝编译错误 DEV-C++题解 今天来看一个炒鸡简单的USACO,没有之一. 题目描述 下面是一个乘法竖式,如果用我们给定的那几个数字来取代*,可以使式子成立的话,我们就叫 ...
- 【USACO题库】 动态规划 汇总(普及-/普及)
数据结构提高是够用了=-=虽然树状数组没学 但是其他类问题只能打到普及 普及啊啊啊!!! 而且这边省选组都是什么仙人掌啊,什么系什么点对啊...感觉数据结构并没有什么用 (实际上很有用但我不会用就是了 ...
- 【USACO题库】3.2.4 Feed Ratios饲料调配
这一题,有许多的细节要注意一下!特别是循环中的判断!先看一下代码: #include<cstdio> using namespace std; int a[4][4]; int main( ...
- 【图论】【最短路】【SPFA】【USACO题库】2.4.4 Bessie Come Home回家(jzoj 1274)
Bessie Come Home回家 题目大意: 有n条路连接着一些牧场,每个牧场由'a-z'(没羊)和'A-Y'(有一头羊),问哪个有羊的牧场离'Z'最近 INPUT FORMAT 第 1 行: 整 ...
- 【USACO题库】3.2.3 Spinning Wheels纺车的轮子
题目描述 一架纺车有五个纺轮(也就是五个同心圆),这五个不透明的轮子边缘上都有一些缺口.这些缺口必须被迅速而准确地排列好.每个轮子都有一个起始标记(在0度),这样所有的轮子都可以在统一的已知位 ...
- 【USACO题库】1.1.4 Broken Necklace破碎的项链
题目描述: 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=35000),珠子是随意安排的. 这里是 n=29 的二个例子: 1 2 1 2r b b r b r r b ...
最新文章
- [精]Odoo 8.0深入浅出开发教程-模块开发基础
- Microbiome:马铃薯疮痂病与土壤微生物组关系新进展
- 互联网经济与实体经济
- CPU time与WALL time
- 如何计算MP3总时长的问题(三)--对于变比特率MP3求总时长
- 圆通速递:2022年1月快递产品收入36.19亿元 同比增长20.09%
- 库克看下!罗永浩深夜再谈收购苹果:还需要点时间
- 团队计划(4.22)
- FM、LFM、AFM、NFM、DeepFM、 Deep Cross Network
- ESX中的虚拟机中安装虚拟机的实现
- python3调用企业微信api
- python 灰度图转rgb rgb转灰度之间的变化
- 华为 QOS服务质量基础知识总结
- 时域分析特征参数的计算代码(Matlab和Qt两种)
- Xcode运行报错The operation couldn’t be completed.
- Vue组件:做一个表情输入键盘
- oracle rac 关闭asm,11G rac的ASM无法关闭
- tortoiseGit管理的文件没有绿色红色等图标
- 关于电脑外设键盘的讲解
- 977.有序数组的平方
热门文章
- 时间加减计算器_考前急救!2019年注册会计师计算器使用技巧,不会你就out了...
- Java线程同步-模拟买票
- Python中jieba库的使用
- [转载]刘峰获“区块链60人”2020赋能中国区块链创新人物奖
- EDAS投会议论文遇见的问题及部分解决办法——总结
- 修改Element-ui表格样式
- 小样本学习之关系网络:让机器自己学习如何度量
- sundayplayer第一版本开放源代码
- 开源任务管理平台TaskManager介绍
- 两个相离圆上各取一点P、Q,求线段PQ中点M的轨迹。