题目描述
blablabla
样例
BLABLABLA
题外话
作为 “氏” 刷题团队最多嘴的人怎么能不多说几句话呢?
代码简洁明了,注视一目了然的代码奉上,不懂的可以评论区发问,我私信回答就是了。
第一次发题解,有帮助的话就点个赞在走吧
我没买课程,发一个课程的题目连接吧。
算法1
(链表法)
include[HTML_REMOVED] //万能头文件
using namespace std; //命名空间
const int N=1e5+3; //离100000最近的质数
int a[N],e[N],ne[N],idx; //该定义的都定义上
void insert(int x) //放入宝贝
{
int k=(x%N+N)%N; //确保映射为正
e[idx]=x,ne[idx]=a[k],a[k]=idx++; //正常的链表插入
}
bool find(int x){ //抄家函数
int k=(x%N+N)%N; //确保映射为正
for(int i=a[k];i!=-1;i=ne[i]) //读条开始
if(e[i]==x) //搜到宝了
return true; //抢走,有一件宝贝了
return false; //我什么也没有康到
}
int main() //主函数
{
int n;char ed[2];int x; //该定义的都定义上
cin>>n; //输入读条次数
memset(a,-1,sizeof(a)); //初始化为-1好抄家
while(n–){ //开始读条
cin>>ed>>x; //放入你的宝
if(*ed == ‘I’) insert(x); //如果为I就插入链表
else{ //不放宝/就/抄家
if(find(x)) puts(“Yes”); //抄到宝了
else puts(“No”); //md穷鬼
}
}
return 0; //完美的收场
}
参考文献
无注释版
C++ 代码
```
include[HTML_REMOVED]
using namespace std;
const int N=1e5+3;
int a[N],e[N],ne[N],idx;
void insert(int x)
{
int k=(x%N+N)%N;
e[idx]=x,ne[idx]=a[k],a[k]=idx++;
}
bool find(int x){
int k=(x%N+N)%N;
for(int i=a[k];i!=-1;i=ne[i])
if(e[i]==x)
return true;
return false;
}
int main()
{
int n;char ed[2];int x;
cin>>n;
memset(a,-1,sizeof(a));
while(n–){
cin>>ed>>x;
if(*ed == ‘I’) insert(x);
else{
if(find(x)) puts(“Yes”);
else puts(“No”);
}
}
return 0;
}
建议改为:没有
hh