首页 > 其他 > 详细

子集mex值

时间:2021-06-21 23:39:51      阅读:29      评论:0      收藏:0      [点我收藏+]

子集mex值

AcWing 3705
https://www.acwing.com/problem/content/3708/

模拟,先记录每个数出现次数,然后由于要分成两个数组,依次遍历记录数组两遍,若出现次数大于0,则继续遍历,直到遇到出现次数为0.并且把遍历过的数的出现次数都减1,然后开始第二次遍历。

代码

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

int T,n;
int a[105];


int main()
{
    cin >> T;
    
    while (T--)
    {
        cin >> n;
        memset(a, 0, sizeof a);//初始化
        while (n -- )
        {
            int x;
            cin >> x;
            a[x] +=1 ;
        }
        
        int c = 0,d = 0;
        for (int i = 0; i <= 100; i ++ )
        {
                if (a[i] > 0)
                {
                    a[i] --;
                }
                else
                {
                    c = i;
                    break;
                }
        }
        
        for (int i = 0; i <= 100; i ++ )
        {
                if (a[i] > 0)
                {
                    a[i] --;
                }
                else
                {
                    d = i;
                    break;
                }
        }        
       cout << c + d << endl;
    }
    return 0;
}

子集mex值

原文:https://www.cnblogs.com/lijiaji/p/14915730.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!