AcWing 840. 模拟散列表 C++
原题链接
简单
作者:
LaChimere
,
2021-05-22 15:00:39
,
所有人可见
,
阅读 165
C++
#include <iostream>
using namespace std;
const int M = 100003;
int h[M], nums[M], nxt[M], idx;
void insert(int val) {
int k = (val%M + M) % M;
for (int i = h[k]; i != -1; i = nxt[i]) {
if (nums[i] == val) {
return;
}
}
nums[idx] = val;
nxt[idx] = h[k];
h[k] = idx++;
}
void query(int val) {
int k = (val%M + M) % M;
for (int i = h[k]; i != -1; i = nxt[i]) {
if (nums[i] == val) {
cout << "Yes" << endl;
return;
}
}
cout << "No" << endl;
}
int main() {
int n, x;
char op;
cin >> n;
fill(h, h+M, -1);
while (n--) {
cin >> op >> x;
if (op == 'I') {
insert(x);
} else {
query(x);
}
}
return 0;
}