首页 > 其他分享 >C. Choose the Different Ones!

C. Choose the Different Ones!

时间:2024-02-09 19:11:06浏览次数:30  
标签:Different ab 存于 int Ones Choose 数组

题解

我们只需要遍历1~k,这时会有四种情况:

1、只存于a数组中。

2、只存于b数组中。

3、同时存于ab数组中。

4、不存在于ab数组中。

对于情况三,这种数我们不需要去管,因为它可以算在任意的数组上。

那么我们只需要判断情况一和二的数是否都<=k/2,并且情况一二三的数总和为k.

Code

 

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int main(){
    int t;
    cin>>t;
    while (t--){
        int n,m,k;
        bool bol=true;
        cin>>n>>m>>k;
        set<int> a,b;
        for (int i=1;i<=n;i++) {
            int x;
            cin>>x;
            a.insert(x);  //去重并且排序
        }
        for (int i=1;i<=m;i++){
            int x;
            cin>>x;
            b.insert(x);
        }
        int sum1=0,sum2=0;
        set<int>::iterator cnt1=a.begin(),cnt2=b.begin();
        for (int i=1;i<=k;i++){
            if (*cnt1==*cnt2 && *cnt1==i){  //情况三
                cnt1++;
                cnt2++;
            }
            else if (*cnt1==i){   //情况一
                cnt1++;
                sum1++;
            }
            else if (*cnt2==i){   //情况二
                cnt2++;
                sum2++;
            }
            else bol=false;   //不存在对应的数
        }
        if (sum1<=k/2 && sum2<=k/2 && bol) cout<<"YES\n";
        else cout<<"NO\n";
    }
    return 0;
}

 

标签:Different,ab,存于,int,Ones,Choose,数组
From: https://www.cnblogs.com/purple123/p/18012596

相关文章

  • D. Find the Different Ones!
    原题链接核心\(p[i]\)代表离\(a[i]\)最近的不同元素code#include<bits/stdc++.h>usingnamespacestd;inta[200005]={0};intp[200005]={0};intmain(){intt;cin>>t;while(t--){intn;cin>>n;for(inti=1......
  • CF1408F Two Different 题解
    解题思路先考虑如何将一堆数变为相同的。显然,这里有一个条件\(n=2^k,k\in\mathbbZ\),证明如下:每次操作只能将两个数变为相同的,那么一个数在使得其他数变为相同数的操作中(我们不妨将所有数进行这种操作称为一轮操作),一个数最多被使用一次;按照错位操作,即第一轮\(1\)和\(2\)......
  • D. Very Different Array
    原题链接题解,太抽象了最优情况一定可以是这样:Code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;lla[200005]={0};llb[200005]={0};lll[200005]={0},r[200005]={0};intmain(){cin.tie(0);cout.tie(0);llt;cin>>t;w......
  • contest/1921 D Very Different Array
    很容易看的出来是一个贪心。首先对A,B数组进行排序。我猜测的结论是每次从A数组和B数组中的两端选择,分别得到:A的最左端-B的最左端的值A的最右端-B的最左端的值A的最左端-B的最右端的值A的最右端-B的最左端的值比较这四个值取最大的然后用双指针维护一下就可以了。......
  • Codeforces Round 920 (Div. 3) D Very Different Array
    DVeryDifferentArray题意给出两个长度分别为\(n,m\)的数组\(a,c\),\(n<m\),从\(c\)中选择\(n\)个数并找到一个序列使得\(D=\sum_{i=1}^{n}|a_i-c_i|\)尽可能大,求D的值思路假设如果\(m\)和\(n\)一样大,那么找到这个序列的方法很简单:将两个序列分别排序后将其中一个转置,......
  • 差分符号熵Differential symbolic Entropy,多尺度差分符号熵,层次差分符号熵,时移多尺度
    差分符号熵DifferentialsymbolicEntropy,多尺度差分符号熵,层次差分符号熵,时移多尺度差分符号熵,复合多尺度差分符号熵,精细复合多尺度差分符号熵(Matlab代码获取链接:https://mbd.pub/o/bread/mbd-ZZmblZlv)熵或复杂性度量区分时间序列类别和理解潜在动态的能力是众所周知的。该算法......
  • different python version + venv
    ubuntu系统上安装不同python版本https://www.bandwagonhost.net/7309.html比如安装Python3.7:sudoaptinstallpython3.7或者安装Python3.6:sudoaptinstallpython3.6安装之后,我们就可以使用Python对应版本了,比如看一下Python3.7的具体版本:python3.7-V构造应......
  • Understanding q-value and FDR in Differential Expression Analysis
     Understandingq-valueandFDRinDifferentialExpressionAnalysisDaqianIntroductiontoq-valueandFDRIndifferentialgeneexpressionanalysis,researchersareoftenconfrontedwiththechallengeofdistinguishingtruesignals—thosegenesthat......
  • honesty
    honestySubtitle:诚实Created:2023-11-15T14:41+08:00Published:2023-12-31T21:08+08:00Categories:FragmentTags:Diary目录以前的作业灵光后窗(RearWindow)失忆的金鱼秋离(FarewellintheFall)Farewellin2023以前的作业应该是翻译,真是翻译得一团稀碎。前三句对应......
  • uniapp实战 -- 个人信息维护(含选择图片 uni.chooseMedia,上传文件 uni.uploadFile,获取
    效果预览相关代码页面–我的src\pages\my\my.vue<!--个人资料--><viewclass="profile":style="{paddingTop:safeAreaInsets!.top+'px'}"><!--情况1:已登录--><viewclass="overview"v-if="mem......