「1128」N Queens Puzzle

2023-10-13 22:50
文章标签 queens puzzle 1128

本文主要是介绍「1128」N Queens Puzzle,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

The “eight queens puzzle” is the problem of placing eight chess queens on an 8×8 chessboard so that no two queens threaten each other. Thus, a solution requires that no two queens share the same row, column, or diagonal. The eight queens puzzle is an example of the more general N queens problem of placing N non-attacking queens on an N×N chessboard. (From Wikipedia - “Eight queens puzzle”.)

Here you are NOT asked to solve the puzzles. Instead, you are supposed to judge whether or not a given configuration of the chessboard is a solution. To simplify the representation of a chessboard, let us assume that no two queens will be placed in the same column. Then a configuration can be represented by a simple integer sequence  , where  ​ is the row number of the queen in the i-th column. For example, Figure 1 can be represented by (4, 6, 8, 2, 7, 1, 3, 5) and it is indeed a solution to the 8 queens puzzle; while Figure 2 can be represented by (4, 6, 7, 2, 8, 1, 9, 5, 3) and is NOT a 9 queens’ solution.

8q.jpg
9q.jpg
Figure 1Figure 2

Input Specification:

Each input file contains several test cases. The first line gives an integer  . Then K lines follow, each gives a configuration in the format “ ​”, where 4≤N≤1000 and it is guaranteed that  for all  . The numbers are separated by spaces.

Output Specification:

For each configuration, if it is a solution to the N queens problem, print YES in a line; or NO if not.

Sample Input:

4
8 4 6 8 2 7 1 3 5
9 4 6 7 2 8 1 9 5 3
6 1 5 2 6 4 3
5 1 3 5 2 4

Sample Output:

YES
NO
NO
YES

Ω

给出几个棋盘布局,判断是否满足“八皇后问题”的要求,即行列以及对角线上最多只能有一个皇后。棋盘布局的表示方法是给出每一列皇后所在的(自下而上)行数。

题目保证了棋盘上的每一列均有一个皇后,因此我们只要检查行与对角线之间是否满足。行检查比较显然,只要所有皇后的行数不同;而对于对角线的条件,则需要满足 ,其中 是列数, 表示 列皇后所在的行数。每一列的皇后只需和前面几列的皇后比较即可。


🐎

#include <iostream>
#include <vector>using namespace std;int main()
{int n, m;cin >> n;for (int i = 0; i < n; ++i){cin >> m;vector<int> seq(m);bool ans = true;for (int j = 0; j < m; ++j){cin >> seq[j];if (!ans) continue;for (int k = 0; k < j; ++k)ans = ans && (j - k != abs(seq[j] - seq[k])) && seq[j] != seq[k];}printf(ans ? "YES\n" : "NO\n");}
}

这篇关于「1128」N Queens Puzzle的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/206390

相关文章

HDU 1097 A hard puzzle(规律)

题目: http://acm.hdu.edu.cn/showproblem.php?pid=1097 题意: 求a的b次方的最后一位。 题解: 直接从例子入手, 第一组数据 7 66,结果如下(只要最后一位所以模10) 7 9 3 1 7 9··· 循环节为4,即结果在4个数值内循环出现。 第二组数据 6 800,结果如下 6 6 6 6··· 循环节为1 ···

HDU 1128(水题)

题意:如题。 #include<stdio.h>#include<memory.h>#define N 1000001int visited[N];int Self(int n){int sum=n;while(n/10){sum+=n%10;n/=10;}sum+=n;return sum;}int main(){memset(visited,0,sizeof

#1128 : 二分·二分查找 ( 两种方法 先排序在二分O(nlogN) + 直接二分+快排思想O(2N) )

#1128 : 二分·二分查找 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Nettle最近在玩《艦これ》,因此Nettle收集了很多很多的船(这里我们假设Nettle氪了很多金,开了无数个船位)。去除掉重复的船之后,还剩下N(1≤N≤1,000,000)种不同的船。每一艘船有一个稀有值,任意两艘船的稀有值都不相同,稀有值越小的船越稀

Leetcode204: N-Queens II

Follow up for N-Queens problem. Now, instead outputting board configurations, return the total number of distinct solutions. 有了上一题的解法,简单修改下即可 class Solution {private:int num=0;public: in

【LeetCode】N-Queens II 【九度】题目1254:N皇后问题

N-Queens II Total Accepted: 2737 Total Submissions: 10408 My Submissions Follow up for N-Queens problem. Now, instead outputting board configurations, return the total number of distinct solutions.

uva519 - Puzzle (II)(回溯)

题目:uva519 - Puzzle (II) 题目大意:给出拼图,要求将给出的拼图拼成 n行m列的矩形,可以输出yes,不行输出no。 解题思路:直接dfs,但是需要剪枝。 1、判断 F 的出现个数是否等于 2 * ( n + m) , 还有IO的个数是否匹配,不匹配就直接剔除,。 2、边界问题要处理,例如第一行第N行,第一列第M列,这些地方的拼图是有要求的,这些边界拼图的的外围都

Vue - 详细介绍 vue-monoplasty-slide-verify vue3-puzzle-vcode 滑动验证组件

Vue - 详细介绍 vue-monoplasty-slide-verify & vue3-puzzle-vcode 滑动验证组件 在日常的账号登录所需要的大部分是滑动验证来检验人为操作,免于字母验证码的繁琐输入,下面介绍在Vue2和Vue3中适用的滑动验证组件。 1、vue-monoplasty-slide-verify(Vue2) 安装: npm install --save vue-

***N-Queens

题目: The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens attack each other. Given an integer n, return all distinct solutions to the n-queens pu

【PAT】【Advanced Level】1128. N Queens Puzzle (20)

1128. N Queens Puzzle (20) 时间限制 300 ms 内存限制 65536 kB

ZOJ 2836 Number Puzzle 容斥、lcm

这题和HDU 1796差不多。 code: #include <cstring>#include <iostream>#include <cstdlib>#include <cstdio>#include <vector>#include <algorithm>using namespace std;typedef long long LL;const int MAXN =