题目描述
题目大意
总觉得题目有一个地方没有讲清楚,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;
}