题目描述
blablabla
C++ 代码
解法一: 使用set来求解
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
while (n -- ) {
int k;
cin >> k;
set<int> dg, udg, row_set; // 拥有去重机制 可以排查旧的数据
//注意行号是从1到k
for (int i = 1; i <= k; i ++ ) {
int x;
cin>> x;
int d = x + k-i, ud = x + i;
row_set.insert(x); // 列号
dg.insert(d); // x-i+k
udg.insert(ud); // x+i
}
if (dg.size() == k && udg.size() == k && row_set.size() == k) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}
求关注
求关注