原来hash的开放寻址发如此简单,I don’t like 拉链法,Because 我不会写模拟单链表😁😎
#include<iostream>
#include<cstring>
using namespace std;
const int N=2e5+3,null=0x3f3f3f3f;
int n,h[N],head=-1;
int find(int x)
{
int k=(x%N+N)%N;
while(h[k]!=null&&h[k]!=x)k++;
return k;
}
int main()
{
cin>>n;
memset(h,0x3f,sizeof h);
while(n--)
{
char x;
int y;
cin>>x>>y;
if(x=='I')
h[find(y)]=y;
else
{
if(h[find(y)]!=null)
cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
}
return 0;
}
可能会被卡, 建议用拉链法
谢谢提醒
后面图论题目都是模拟邻接表的写法,可以学一下模拟单链表
谢谢
其实俩都挺简单的 /ww
可关键是我不会模拟单链表qwq
学一学 挺好理解的