标签:tar 链接 blank ace iostream contest ref targe clu
文章中若有不严谨或错误的地方,欢迎在评论中指出QAQ
有两个长度为 \(n\) 的数组分别为 \(a,b\) ,其中 \(a_i = 2^{b_i}\) ,现给出b数组,问是否存在两个 \(a\) 的子数组,它们的区间和相同,若有则输出 "YES",否则输出 "NO"。
\(2 \le n \le 1000\),\(0 \le b_i \le 10^9\)
b的范围很大,所以不能求出来每个 \(a\) 的值。
对于一个二进制数若要满足其可以由小的二进制数转化而来,则其中必包含相同的二进制数。
所以可以直接看b数组内是否有相同的数,若有则直接输出这两个数的位置即可,若没有则肯定不成立。
#include <iostream>
#include <set>
using namespace std;
int main()
{
int t;
cin >> t;
while(t -- )
{
int n;
cin >> n;
set<int> se;
for (int i = 0 ; i < n ; i ++ )
{
int x;
cin >> x;
se.insert(x);
}
if(se.size() != n) cout << "YES" << endl;
else cout << "NO" << endl;
}
return 0;
}
[Codeforces 1438B]Valerii Against Everyone
标签:tar 链接 blank ace iostream contest ref targe clu
原文地址:https://www.cnblogs.com/Crystar/p/14381961.html