当前位置:网站首页>哈希表 AcWing 840. 模拟散列表
哈希表 AcWing 840. 模拟散列表
2022-07-02 09:43:00 【T_Y_F666】
哈希表 AcWing 840. 模拟散列表
原题链接
算法标签
哈希表
思路

拉链法

开放寻址法
代码
#include<bits/stdc++.h>
#define int long long
#define rep(i, a, b) for(int i=a;i<b;++i)
#define Rep(i, a, b) for(int i=a;i>b;--i)
using namespace std;
const int N = 100003;
int a[N], e[N], h[N], ne[N], idx;
int s;
inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
return s*w;
}
void put(int x) {
if(x<0) putchar('-'),x=-x;
if(x>=10) put(x/10);
putchar(x%10^48);
}
// 采用头插法 将数据插入对应hash值为k的hash表中
void insert(int x){
//保证负数也可以映射到hash表中 所模数字为质数 可以尽量减少冲突
int k=(x%N+N)%N;
e[idx]=x;
ne[idx]=h[k];
h[k]=idx++;
}
bool find(int x){
int k=(x%N+N)%N;
for(int i=h[k]; i!=-1; i=ne[i]){
if(e[i]==x){
return true;
}
}
return false;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
memset(h, -1, sizeof h);
int n=read();
while(n--){
char op[2];
scanf("%s", op);
int x=read();
if(op[0]=='I'){
insert(x);
}else{
if(find(x)){
puts("Yes");
}else{
puts("No");
}
}
}
return 0;
}
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
边栏推荐
- Mysql database foundation
- There is a hidden danger in CDH: the exchange memory used by the process of this role is XX megabytes. Warning threshold: 200 bytes
- Post request body content cannot be retrieved repeatedly
- Docker-compose配置Mysql,Redis,MongoDB
- FBX import under ue4/ue5 runtime
- Record the range of data that MySQL update will lock
- 使用Sqoop把ADS层数据导出到MySQL
- 线性DP AcWing 902. 最短编辑距离
- 模块化 CommonJS ES Module
- 堆(優先級隊列)
猜你喜欢

Embedded Software Engineer career planning

drools动态增加、修改、删除规则

刷题---二叉树--2

线性DP AcWing 899. 编辑距离

WSL 2 will not be installed yet? It's enough to read this article

Go learning notes - multithreading

Does C language srand need to reseed? Should srand be placed in the loop? Pseudo random function Rand

ThreadLocal的简单理解

计数类DP AcWing 900. 整数划分

Sort---
随机推荐
CDH6之Sqoop添加数据库驱动
Sse/avx instruction set and API of SIMD
Tas (file d'attente prioritaire)
使用Sqoop把ADS层数据导出到MySQL
(C language) input a line of characters and count the number of English letters, spaces, numbers and other characters.
堆(優先級隊列)
CPU指令集介绍
Input a three digit number and output its single digit, ten digit and hundred digit.
Deep understanding of P-R curve, ROC and AUC
H5 to app
记录一下MySql update会锁定哪些范围的数据
[C language] Yang Hui triangle, customize the number of lines of the triangle
上传文件时,服务器报错:IOFileUploadException: Processing of multipart/form-data request failed. 设备上没有空间
AAAI 2022 | Peking University & Ali Dharma Institute: pruning and compression of pre training language model based on comparative learning
Leetcode - Sword finger offer 51 Reverse pairs in an array
Sub thread get request
[ybtoj advanced training guidance] judgment overflow [error]
What is the relationship between NFT and metauniverse? How to view the market? The future market trend of NFT
OpenCV中cv2.VideoWriter_fourcc()函数和cv2.VideoWriter()函数的结合使用
Drools executes string rules or executes a rule file