1128 N Queens Puzzle (20分)/双指针

题目描述

在这里插入图片描述在这里插入图片描述

题目大意

总觉得题目有一个地方没有讲清楚,Qi是第i列的Queue所在的行号,但是这里的第i列又不是从左到右或从右到左第i列的意思,题意有点迷,这里没有讲清楚。

分析

只需要判断有没有同一行或者成对角线的Queue即可。

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int main() {
	//freopen("1.txt", "r", stdin);
	int k; cin >> k;
	while (k--) {
		int n,flag=1; cin >> n;
		vector<int> v(n);
		for (int i = 0; i < n; i++) {
			cin >> v[i];
			for (int j = 0; j < i; j++) {
				if (v[i] == v[j] || i - j == abs(v[i] - v[j])) flag = 0;
			}
		}
		printf("%s\n", flag ? "YES" : "NO");
	}
	return 0;
}
发布了103 篇原创文章 · 获赞 9 · 访问量 4716

猜你喜欢

转载自blog.csdn.net/weixin_43590232/article/details/104338968