AcWing 1621. N 皇后问题
原题链接
简单
作者:
leo123456
,
2020-08-31 17:46:36
,
所有人可见
,
阅读 608
#include<iostream>
#include<cstring>
using namespace std;
const int N=1010;
int n;
bool row[N],dg[N*2+1],udg[N*2+1];//每行 正对角线 反对角线
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
memset(row,0,sizeof row);
memset(dg,0,sizeof dg);
memset(udg,0,sizeof udg);
bool success=true;
for(int y=1;y<=n;y++)
{
int x;
scanf("%d",&x);
if(row[x]||dg[x+y]||udg[y-x+n]) success=false;
row[x]=dg[x+y]=udg[y-x+n]=true;
}
if(success) printf("YES\n");
else printf("NO\n");
}
return 0;
}
大佬 这个坐标系是咋来的啊
想一想,这是个简单数学问题啊