#include <stdio.h>
#include <string.h>
#include <map>
#include <set>
#include <queue>
#include <string>
#include <algorithm>
using namespace std;
bool line1[2200],line2[2200],row[1100];
int K,N;
int main()
{
scanf("%d",&K);
for(int k=0;k<K;k++)
{
memset(line1,false,sizeof(line1));
memset(line2,false,sizeof(line2));
memset(row,false,sizeof(row));
bool flag=true;
scanf("%d",&N);
for(int i=1;i<=N;i++)
{
int r,c=i;
scanf("%d",&r);
int index1=N-r+c;
int index2=N-r+N-c+1;
if(line1[index1]||line2[index2]||row[r])
{
flag=false;
}
line1[index1]=true;
line2[index2]=true;
row[r]=true;
}
if(flag)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
PAT甲1128 N Queens Puzzle(20 分)
最新推荐文章于 2021-11-24 17:11:00 发布