题目
https://pintia.cn/problem-sets/994805342720868352/problems/994805348915855360
题意
八皇后问题:如果每两个棋子不同行、不同列、不在同一条斜线上,就符合要求,反之不符合
代码解析
两两比较,因为列一定不相同,所以只需比较行和斜线即可
AC代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int k,n,t;
scanf("%d",&k);
while(k--)
{
scanf("%d",&n);
int a[n+1],flag=1;
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
{
if(a[i]==a[j] || abs(i-j)==abs(a[i]-a[j])) flag=0;
}
printf("%s\n",flag?"YES":"NO");
}
}