题目链接:点击打开链接
思路:经典搜索,N皇后问题。
#include
#include
#include
#include
using namespace std;
bool judge(int chess[],int loc){
for(int i = 0;i < loc;i++){
if(chess[i] == chess[loc] || fabs(chess[loc] - chess[i]) == loc - i){
return false;
}
}
return true;
}
int main(){
int cnt;
int n,chess[1005];
scanf("%d",&cnt);
while(cnt--){
scanf("%d",&n);
bool flag = true;
for(int i = 0;i < n;i++){
scanf("%d",&chess[i]);
if(!judge(chess,i)){
flag = false;
}
}
puts(flag?"YES":"NO");
}
return 0;
}