• 元素查找 (codevs1230)哈希表模板


    题目描述

    给出n个正整数,然后有m个询问,每个询问一个整数,询问该整数是否在n个正整数中出现过。

     
    输入描述 

    第一行两个整数 n 和m。

    第二行n个正整数(1<=n<= 100000)

    第三行m个整数(1<=m<=100000)

     
    输出描述 

    一共m行,若出现则输出YES,否则输出NO

     
    样例输入

    4 2

    2 1 3 4

    1 9

    样例输出 

    YES

    NO

     

    所有数据都不超过10^8


     

    第一次真正意义上学哈希表,记录下该模板

     

    代码如下:

    #include<stdio.h>
    #include<algorithm>
    #include<vector>
    using namespace std;
    const int mod=10007;
    vector<int> mp[10007];
    
    int hash(int x)
    {
        return x%mod;
    }
    
    int main()
    {
        int n,m;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;++i)
        {
            int tep;
            scanf("%d",&tep);
            mp[hash(tep)].push_back(tep);
        }
        for(int i=1;i<=m;++i)
        {
            int tep;
            bool flag=false;
            scanf("%d",&tep);
            for(int j=0;j<mp[tep].size();++j)
            if(tep == mp[hash(tep)][j])
            {
                flag=true;
                break;
            }
            if(flag) printf("YES
    ");
            else printf("NO
    ");
        }
        return 0;
    }
    从0到1很难,但从1到100很容易
  • 相关阅读:
    JAVA开发环境配置
    Java volatile关键字解惑
    Java实验案例(接口)
    Java 实验案例(多态)
    Eclipse 快捷键大全
    全球免费开放的电子图书馆
    Java 实验案例(类和对象篇)
    Java IO流(二)
    Linux zsh 实用配置
    Js远程调用封装
  • 原文地址:https://www.cnblogs.com/qseer/p/9417801.html
Copyright © 2020-2023  润新知