59AcWing 840. 模拟散列表

发布时间 2023-12-07 15:21:19作者: E/Y/E
点击查看代码
#include<iostream>
#include <cstring>
using namespace std;
const int N=200003,null=0x3f3f3f3f;
int h[N];
int find(int x){
    int k=(x%N+N)%N;//索引
    while(h[k]!=null&&h[k]!=x)
    {
        k++;
        if(k==N)k=0;//重新搜索
    }
    return k;//又返回值
}
int main()
{
    int n;
    scanf("%d",&n);
    memset(h,0x3f,sizeof h);

    while(n--)
    {
        char op[2];
        int x;
        scanf("%s%d",op,&x);

        int k=find(x);
        if(*op =='I')h[k]=x;
        else{
            if(h[k]!=null)puts("Yes");
            else puts("No");
        }
    }
return 0;
}