AcWing 840. 模拟散列表(散列hash)
题目连接
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)相关推荐
- ~~一般哈希(数据结构)(附模板题AcWing 840 模拟散列表)
(1) 拉链法 int h[N], e[N], ne[N], idx;// 向哈希表中插入一个数 void insert(int x) {int k = (x % N + N) % N;e[idx] ...
- Hash表(哈希表、散列表)
哈希表 概念 为什么需要哈希表 静态查找表与动态查找表中,为了查找某关键字值等于某个值的记录,都要经过一系列的关键字进行比较,以确定待查记录的储存位置或查找失败,查找的时间总是与比较次数有关 什么是哈 ...
- 数据结构——散列表(Hash Table)(哈希表)
散列表 散列表英文是hash table,经常被叫做Hash表,或者哈希表. 哈希表其实就是由数组演化而来的,利用的就是数组支持按照下标随机访问数据的特性,可以说散列表就是数组的一种扩展. 百度文库对 ...
- 【数据结构笔记39】哈希表/散列表、(数据关键字/字符串关键字)散列构造函数
本次笔记内容: 11.1.1 引子:散列的基本思路 11.1.2 什么是散列表 11.2.1 数据关键词的散列函数构造 11.2.2 字符串关键词的散列函数构造 文章目录 散列表背景 基本思想引出 已 ...
- JavaScript数据结构之字典和散列表
JavaScript数据结构之字典和散列表 集合.字典和散列表可以存储不重复的值.在字典中,我们用[键,值]的形式来存储数据.在散列表中也是一样(也是以[键,值]对的形式来存储数据) 字典 集合表示一 ...
- 数据结构第十一节(散列表)
什么是散列表# 散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存储存位置的数据结构.也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录, ...
- 散列表的设计与实现_python基础之字典与集合实现
更多内容,欢迎关注微信公众号: tmac_lover 上一篇介绍python中字典和集中时,提到,字典和集合的优势在于增删改查非常高效,而高效的原因就在于,python中字典和集合这两个数据结构是基于 ...
- 如何实现搜索列表_图解:如何理解与实现散列表
这是查找算法的第四篇文章 图解:如何理解与实现散列表 散列表的概念 散列表(Hash table),也叫做哈希表,是根据键(Key)而直接访问在内存存储位置的数据结构.也就是说,它通过计算一个关于键值 ...
- 【算法导论】学习笔记——第11章 散列表
11.1 直接寻址表 当关键字的全域U很小,可采用直接寻址的方式.假设动态集合S的元素都取自全域U={0, 1, ..., m-1}的一个关键字,并且没有两个元素具有相同的关键字. 为表示动态集合,使 ...
最新文章
- 黄聪:TortoiseGit(乌龟git)保存用户名密码的方法
- Cesium入门11 - Interactivity - 交互性
- 已知gcd和lcm求a+b最小和?------数论
- ubuntu下vim的命令及使用方法
- python数字信号处理应用中文pdf_人邮新书 Python数字信号处理应用 Python在DSP中应用教程 Python基础 Pytho...
- java c 基本类型_java 基本数据类型
- 阿里云肖力:原生安全打造云上绿洲
- excel超链接怎么设置_Excel表格使用超链接提示由于本机限制的解决方法
- Flex(flash)检测摄像头的3种状态(是否被占用,没安装摄像头,正常)
- 扩展IQueryable实现属性名称排序
- omnicppcomplete php,vim 中OmniCppComplete的安装和使用
- html中好看的英文字体,一组漂亮的英文字体在线演示
- 发出商品杀手锏之SAP在途库存解决方案
- Samba 服务详解
- 微信公众平台的发展历史
- 谷歌浏览器怎么把阅读清单按钮放到书签栏?
- 链上数据分析—NFT 项目质量评估
- ES match query
- 打造全域智慧教育,智领云BDOS深度助力浙江省教育教学创新发展
- LaTeX中正规子群符号的输入方法
热门文章
- FPI(Fixed-point Iteration)不动点迭代法——迭代求方程的方法
- Tensor的数据统计
- tf.map_fn 多输入
- Windows10 Virtualization Technology虚拟化技术功能
- SQL http://www.myfeng.cn/?T3009
- vue循环出来列表里面的列表点击click事件只对当前列表有效;
- Elasticsearch+Mongo亿级别数据导入及查询实践
- 数据结构作业——ギリギリ eye(贪心+优先队列/贪心+并查集)
- 2016年9月份工作知识点汇总
- redux 管理你的 react 应用