1128 N Queens Puzzle(N皇后问题)

大致题意就是给出包含N个元素的序列,判断其是否是N皇后的解。

已知每个坐标(x,f(x))的横坐标x不同,只需比较

1,列坐标是否相同f(x)(f(x1) - f(x2) == 0)。

2,两个坐标是否在同一对角线上(x1-x2 == |f(x1)-f(x2)|)。

满足1或2都不是解。

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<vector>
 4 using namespace std;
 5 
 6 int main() {
 7     int k,n;
 8     cin>>k;
 9     while(k--) {
10         cin>>n;
11         vector<int> v(n+1);
12         int flag  = 1;
13         for(int i = 1; i <= n; ++i)
14             cin>>v[i];
15         for(int i = 1; i <= n&&flag; ++i) {
16             for(int j = i+1; j <= n&&flag; ++j)
17                 if(j-i == abs(v[i]-v[j]) || v[i]-v[j] == 0) flag = 0;
18         }
19         if(flag) printf("YES\n");
20         else printf("NO\n");
21     }
22     return 0;
23 }

猜你喜欢

转载自www.cnblogs.com/keep23456/p/12508958.html
今日推荐