0
点赞
收藏
分享

微信扫一扫

PAT_甲级_1128 N Queens Puzzle (20point(s)) (C++)【N皇后(简化版)】


目录

​​1,题目描述​​

​​题目大意​​

​​2,思路​​

​​3,AC代码​​

​​4,解题过程​​

1,题目描述

PAT_甲级_1128 N Queens Puzzle (20point(s)) (C++)【N皇后(简化版)】_N皇后简化版

PAT_甲级_1128 N Queens Puzzle (20point(s)) (C++)【N皇后(简化版)】_C++_02

Sample Input:

4
8 4 6 8 2 7 1 3 5
9 4 6 7 2 8 1 9 5 3
6 1 5 2 6 4 3
5 1 3 5 2 4

 

Sample Output:

YES
NO
NO
YES

题目大意

判断N个皇后的布局是否正确(极简版八皇后问题);

 

2,思路

(只需要判断即可)

先按最简单的暴力试一波

PAT_甲级_1128 N Queens Puzzle (20point(s)) (C++)【N皇后(简化版)】_C++_03

然后就通过了。

 

3,AC代码

赤裸裸的O(N^2)本以为会超时,然而并没有,哈哈哈。

#include<bits/stdc++.h>
using namespace std;
int data[1001];
bool judge(int len){
for(int i = 1; i <= len; i++){
for(int j = 1; j < i; j++){
if(data[i] == data[j] || abs(j-i) == abs(data[j]-data[i]))
return false;
}
}
return true;
}
int main(){
#ifdef ONLINE_JUDGE
#else
freopen("1.txt", "r", stdin);
#endif // ONLINE_JUDGE
int K, N;
cin>>K;
for(int i = 0; i < K; i++){
scanf("%d", &N);
for(int j = 1; j <= N; j++)
scanf("%d", &data[j]);
bool flag = judge(N);
printf("%s\n", flag==true ? "YES":"NO");
}
return 0;
}

4,解题过程

一发入魂o(* ̄▽ ̄*)ブ

PAT_甲级_1128 N Queens Puzzle (20point(s)) (C++)【N皇后(简化版)】_PAT_04

 

举报

相关推荐

0 条评论