zoukankan      html  css  js  c++  java
  • 元素查找 (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很容易
  • 相关阅读:
    桂林印象
    快变
    近期的事
    *C#中使用ref和out一点认识!*
    *在框架集页面放置TreeView控件时页面跳转的问题解决*
    *无法找到脚本库的问题*
    *Ajax.Net快速入门*
    *网页过期*
    *Prototype开发笔记*
    *正则表达式*
  • 原文地址:https://www.cnblogs.com/qseer/p/9417801.html
Copyright © 2011-2022 走看看