智能家居型网站开发,广州市番禺区住房和建设局网站,免费创建网站平台有哪些,佛山市 骏域网站建设模拟散列表
维护一个集合#xff0c;支持如下几种操作#xff1a;
I x#xff0c;插入一个整数 x#xff1b; Q x#xff0c;询问整数 x是否在集合中出现过#xff1b; 现在要进行 N次操作#xff0c;对于每个询问操作输出对应的结果。
输入格式 第一行包含整数 N支持如下几种操作
I x插入一个整数 x Q x询问整数 x是否在集合中出现过 现在要进行 N次操作对于每个询问操作输出对应的结果。
输入格式 第一行包含整数 N表示操作数量。
接下来 N行每行包含一个操作指令操作指令为 I xQ x 中的一种。
输出格式 对于每个询问指令 Q x输出一个询问结果如果 x 在集合中出现过则输出 Yes否则输出 No。
每个结果占一行。
存储过程
存储方式 // 防止出现复数情况 id (x%NN)%N 若q[id]!null q[id]!x id 若 id N id 0
代码实现
#include iostream
#include cstringusing namespace std;const int N 3e5 3;
const int null 0x3f3f3f3f;
int q[N];int Insert(int x){int u (x%N N)%N;while(q[u]!null q[u]!x){u;if(uN){u0;}}return u;}int main(){int n;cinn;memset(q, 0x3f3f3f3f, sizeof q); string op;int x;while(n--){cinopx;if(op[0]I){q[Insert(x)] x;}else{if(q[Insert(x)]!null){coutYesendl;}else{coutNoendl;}}}}