问题遇到的现象和发生背景
运行超时
题目链接如下:
https://www.acwing.com/problem/content/description/842/
问题相关代码
#include<iostream>
#include<cstring>
using namespace std;
const int N=20003,null=0x3f3f3f3f;
int n;//定义操作数n
char op[2];
int h[N];
void insert(int x)
{
int k=(x%N+N)%N;
//筛除冲突且被占的位置
while(h[k]!=null&&h[k]!=x)
{
k++;
if(k==N)k=0;
}
h[k]=x;
return ;
}
bool find(int x)
{
int k=(x%N+N)%N;
while(h[k]!=null&&h[k]!=x)
{
k++;
if(k==N)k=0;
}
if(h[k]==x)return true;
return false;
}
int main()
{
cin>>n;//读入操作次数
int x;
memset(h,0x3f,sizeof h);//初始化h数组
while(n--)
{
scanf("%s%d",op,&x);
if(*op=='I')insert(x);
else {
if(find(x))puts("Yes");
else puts("No");
}
}
return 0;
}
运行结果及报错内容
小部分数据通过