PAT甲级 1128 N Queens Puzzle

题目链接:点击打开链接

思路:经典搜索,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;
}


你可能感兴趣的:(PAT甲级 1128 N Queens Puzzle)