第 2 届河北省大学生程序设计竞赛(河北省赛)-Problem A. Mex Query-题解

Posted Tisfy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第 2 届河北省大学生程序设计竞赛(河北省赛)-Problem A. Mex Query-题解相关的知识,希望对你有一定的参考价值。

传送门

Problem A. Mex Query

Problem B. Nim Game

Problem C. icebound 的账单

Problem G. 520

Problem H. 神殿

Problem J. icebound 的商店

Problem K. Bitmap

       哈希讲解
       二维哈希讲解

Problem L. 跑图





Problem A. Mex Query

Time Limit: 1000ms
Memory Limit: 65536KB

Description

Given n n n non-negative integers, please find the least non-negative integer that doesn’t
occur in the n n n numbers.

Input

The first line is an integer n n n.
The second line are n n n non-negative integers a i a_i ai.
1 ≤ n ≤ 1 0 3 , 0 ≤ a i ≤ 1 0 3 1\\leq n\\leq 10^3, 0\\leq a_i\\leq 10^3 1n103,0ai103

Output

Output a line with the answer.

Sample Input

4
4 0 1 1

Sample Output

2

题目大意

给你 n n n个非负整数,问你最小的还没出现的非负整数是多少


解题思路

这是一道英文阅读题,可以用“桶”的思想。
建立一个数组 a [ 1010 ] a[1010] a[1010]初始值全为 0 0 0,每输入一个数 t t t就让 a [ t ] + + a[t]++ a[t]++
全部输入后,从 0 0 0开始遍历,找到第一个为 0 0 0的数即可。


AC代码

#include<bits/stdc++.h>
using namespace std;
int a[1010]={0};
int main()
{
    int n;
    cin>>n;//n个数
    while(n--)
    {
        int t;
        cin>>t;
        a[t]++;
    }
    for(int i=0;i<=1000;i++)
    {
        if(!a[i])//a[i]=0,即说明i没有出现过
        {
            cout<<i<<endl;
            return 0;
        }
    }
    return 0;
}

原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/116500677

以上是关于第 2 届河北省大学生程序设计竞赛(河北省赛)-Problem A. Mex Query-题解的主要内容,如果未能解决你的问题,请参考以下文章

第 2 届河北省大学生程序设计竞赛(河北省赛)-Problem G. 520-题解

第 2 届河北省大学生程序设计竞赛(河北省赛)-Problem K. Bitmap-题解

第 2 届河北省大学生程序设计竞赛(河北省赛)-Problem C. icebound 的账单-题解

第 2 届河北省大学生程序设计竞赛(河北省赛)-Problem J. icebound 的商店-题解

第 2 届河北省大学生程序设计竞赛(河北省赛)-Problem B. Nim Game-题解

第 2 届河北省大学生程序设计竞赛(河北省赛)-Problem A. Mex Query-题解