首页 > 其他 > 详细

【PAT甲级】1128 N Queens Puzzle (20分)

时间:2020-03-21 20:16:28      阅读:64      评论:0      收藏:0      [点我收藏+]

题意:

输入一个正整数K(<=200),接着输入K行,第一个数为N(<=1000),后来跟着N个整数(1~N)表示第i列皇后的所在行数,所有的皇后不在一列,输出是否所有的皇后不会相互攻击。

trick:

N^2/2不会超时,N^2会在最后一个测试点超时。

AAAAAccepted code:

 1 #define HAVE_STRUCT_TIMESPEC
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 int a[1007];
 5 int main(){
 6     ios::sync_with_stdio(false);
 7     cin.tie(NULL);
 8     cout.tie(NULL);
 9     int t;
10     cin>>t;
11     while(t--){
12         int n;
13         cin>>n;
14         int flag=0;
15         for(int i=1;i<=n;++i){
16             cin>>a[i];
17             for(int j=1;j<i;++j){
18                 int temp=i-j;
19                 int x=a[i]+temp;
20                 int y=a[i]-temp;
21                 if(a[j]==x||a[j]==y||a[j]==a[i])
22                     flag=1;
23             }
24         }
25         if(flag)
26             cout<<"NO\n";
27         else
28             cout<<"YES\n";
29     }
30     return 0;
31 }

 

【PAT甲级】1128 N Queens Puzzle (20分)

原文:https://www.cnblogs.com/ldudxy/p/12541659.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!