题目连接

https://www.acwing.com/problem/content/description/842/

思路

使用开放寻址法,思路大概是这样我们讲要查询的数模上一个大于n的质数,然后这表示它呗映射到了哪个坑位,如果这个坑位有人的话,那么我们就往下走(假设这些坑位是一个环状),因为我们的坑位数是大于我们要映射的数的,所以不会死循环,这个算法的期望复杂度是O(1)的,但是随着我们映射关系的增加这个常数会变得很大的

代码

#include<bits/stdc++.h>
using namespace std;
//----------------自定义部分----------------
#define ll long long
#define mod 1000000007
#define endl "\n"
#define PII pair<int,int>int dx[4]={0,-1,0,1},dy[4]={-1,0,1,0};ll ksm(ll a,ll b) {ll ans = 1;for(;b;b>>=1LL) {if(b & 1) ans = ans * a % mod;a = a * a % mod;}return ans;
}ll lowbit(ll x){return -x & x;}const int N = 200003;
//----------------自定义部分----------------
int n,m,q,a[N],null=0x3f3f3f3f;int find(int x){int t = (x%N+N)%N;while(a[t] != null && a[t] != x){t=(t+1)%N;}return t;
}int main()
{std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);cin>>n;memset(a,0x3f,sizeof a);string op;int x;for(int i = 1;i <= n; ++i) {cin>>op>>x;int t = find(x);if(op == "I") a[t] = x;else{if(a[t] == x) cout<<"Yes"<<endl;else cout<<"No"<<endl;}}return 0;
}

AcWing 840. 模拟散列表(散列hash)相关推荐

  1. ~~一般哈希(数据结构)(附模板题AcWing 840 模拟散列表)

    (1) 拉链法 int h[N], e[N], ne[N], idx;// 向哈希表中插入一个数 void insert(int x) {int k = (x % N + N) % N;e[idx] ...

  2. Hash表(哈希表、散列表)

    哈希表 概念 为什么需要哈希表 静态查找表与动态查找表中,为了查找某关键字值等于某个值的记录,都要经过一系列的关键字进行比较,以确定待查记录的储存位置或查找失败,查找的时间总是与比较次数有关 什么是哈 ...

  3. 数据结构——散列表(Hash Table)(哈希表)

    散列表 散列表英文是hash table,经常被叫做Hash表,或者哈希表. 哈希表其实就是由数组演化而来的,利用的就是数组支持按照下标随机访问数据的特性,可以说散列表就是数组的一种扩展. 百度文库对 ...

  4. 【数据结构笔记39】哈希表/散列表、(数据关键字/字符串关键字)散列构造函数

    本次笔记内容: 11.1.1 引子:散列的基本思路 11.1.2 什么是散列表 11.2.1 数据关键词的散列函数构造 11.2.2 字符串关键词的散列函数构造 文章目录 散列表背景 基本思想引出 已 ...

  5. JavaScript数据结构之字典和散列表

    JavaScript数据结构之字典和散列表 集合.字典和散列表可以存储不重复的值.在字典中,我们用[键,值]的形式来存储数据.在散列表中也是一样(也是以[键,值]对的形式来存储数据) 字典 集合表示一 ...

  6. 数据结构第十一节(散列表)

    什么是散列表# 散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存储存位置的数据结构.也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录, ...

  7. 散列表的设计与实现_python基础之字典与集合实现

    更多内容,欢迎关注微信公众号: tmac_lover 上一篇介绍python中字典和集中时,提到,字典和集合的优势在于增删改查非常高效,而高效的原因就在于,python中字典和集合这两个数据结构是基于 ...

  8. 如何实现搜索列表_图解:如何理解与实现散列表

    这是查找算法的第四篇文章 图解:如何理解与实现散列表 散列表的概念 散列表(Hash table),也叫做哈希表,是根据键(Key)而直接访问在内存存储位置的数据结构.也就是说,它通过计算一个关于键值 ...

  9. 【算法导论】学习笔记——第11章 散列表

    11.1 直接寻址表 当关键字的全域U很小,可采用直接寻址的方式.假设动态集合S的元素都取自全域U={0, 1, ..., m-1}的一个关键字,并且没有两个元素具有相同的关键字. 为表示动态集合,使 ...

最新文章

  1. 黄聪:TortoiseGit(乌龟git)保存用户名密码的方法
  2. Cesium入门11 - Interactivity - 交互性
  3. 已知gcd和lcm求a+b最小和?------数论
  4. ubuntu下vim的命令及使用方法
  5. python数字信号处理应用中文pdf_人邮新书 Python数字信号处理应用 Python在DSP中应用教程 Python基础 Pytho...
  6. java c 基本类型_java 基本数据类型
  7. 阿里云肖力:原生安全打造云上绿洲
  8. excel超链接怎么设置_Excel表格使用超链接提示由于本机限制的解决方法
  9. Flex(flash)检测摄像头的3种状态(是否被占用,没安装摄像头,正常)
  10. 扩展IQueryable实现属性名称排序
  11. omnicppcomplete php,vim 中OmniCppComplete的安装和使用
  12. html中好看的英文字体,一组漂亮的英文字体在线演示
  13. 发出商品杀手锏之SAP在途库存解决方案
  14. Samba 服务详解
  15. 微信公众平台的发展历史
  16. 谷歌浏览器怎么把阅读清单按钮放到书签栏?
  17. 链上数据分析—NFT 项目质量评估
  18. ES match query
  19. 打造全域智慧教育,智领云BDOS深度助力浙江省教育教学创新发展
  20. LaTeX中正规子群符号的输入方法

热门文章

  1. FPI(Fixed-point Iteration)不动点迭代法——迭代求方程的方法
  2. Tensor的数据统计
  3. tf.map_fn 多输入
  4. Windows10 Virtualization Technology虚拟化技术功能
  5. SQL http://www.myfeng.cn/?T3009
  6. vue循环出来列表里面的列表点击click事件只对当前列表有效;
  7. Elasticsearch+Mongo亿级别数据导入及查询实践
  8. 数据结构作业——ギリギリ eye(贪心+优先队列/贪心+并查集)
  9. 2016年9月份工作知识点汇总
  10. redux 管理你的 react 应用