Valerii Against Everyone

题目链接:Valerii Against Everyone

 

题目大意:

有两个数组A,B满足Ai = 2^Bi,现给出数组B,问能否找出四个数l1,r1,l2,r2,使得

Al1+...+Ar1 = Al2+...+Ar2

 

思路:

可以考虑l1 = r1 和 l2 = r2,即找到数组B中两个相同的两个数,如果存在,就输出YES,否则输出NO,因为如果所有数都不同,那么选择一个数相当于选了一个二进制位,所有二进制位都不同,则两个数也不同

 

参考代码:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int main() {
 4     int t,n,a[1010];
 5     cin >> t;
 6     while(t--) {
 7         cin >> n;
 8         for(int i = 1; i <= n; i++) cin >> a[i];
 9         bool ok = false;
10         sort(a+1,a+n+1);
11         for(int i = 1; i <= n-1; i++) {
12             if(a[i] == a[i+1]) {
13                 ok = true;
14                 break;
15             }
16         }
17         if(ok) cout << "YES" << endl;
18         else cout << "NO" << endl;
19     }
20     return 0;
21 }
View Code

 

posted @ 2020-12-26 22:31  不敢说的梦  阅读(80)  评论(0)    收藏  举报