题目描述


分析:简单模拟,给出一个皇后所在行的序列,判断是否符合要求
#include<cstdio>
#include<cmath>
using namespace std;
int n;
int h[1005];
bool judge(){
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
if(h[i]==h[j]||abs(j-i)==abs(h[j]-h[i]))
return false;
}
}
return true;
}
int main(){
int k;
scanf("%d",&k);
while (k--)
{
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&h[i]);
}
if(judge()){
printf("YES\n");
}
else{
printf("NO\n");
}
}
}
本文介绍了一个简单的模拟算法来解决八皇后问题的判定过程。通过输入一个表示皇后位置的行序列,程序能够判断该布局是否符合八皇后问题的要求,即任意两个皇后不在同一行、同一列及同一斜线上。
683

被折叠的 条评论
为什么被折叠?



