元素查找 (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\n"); else printf("NO\n"); } return 0; }
从0到1很难,但从1到100很容易
本文作者:qseer
本文链接:https://www.cnblogs.com/qseer/p/9417801.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步