码迷,mamicode.com
首页 > 其他好文 > 详细

[Codeforces 1438B]Valerii Against Everyone

时间:2021-02-08 11:48:50      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:tar   链接   blank   ace   iostream   contest   ref   targe   clu   

文章中若有不严谨或错误的地方,欢迎在评论中指出QAQ

Description

题库链接

有两个长度为 \(n\) 的数组分别为 \(a,b\) ,其中 \(a_i = 2^{b_i}\) ,现给出b数组,问是否存在两个 \(a\) 的子数组,它们的区间和相同,若有则输出 "YES",否则输出 "NO"。

\(2 \le n \le 1000\)\(0 \le b_i \le 10^9\)

Solution

b的范围很大,所以不能求出来每个 \(a\) 的值。
对于一个二进制数若要满足其可以由小的二进制数转化而来,则其中必包含相同的二进制数。
所以可以直接看b数组内是否有相同的数,若有则直接输出这两个数的位置即可,若没有则肯定不成立。

Code

#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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!