T124433 【模板】哈希表

题目背景

每个测试点 $10$ 分,故满分 $180$ 分。 $225\texttt{ms}$ 内完成得该测试点 $100\%$ 分数。 $1000\texttt{ms}$ 内完成得该测试点 $80\%$ 分数。 $2000\texttt{ms}$ 内完成得该测试点 $50\%$ 分数。 $3000\texttt{ms}$ 内完成得该测试点 $40\%$ 分数。 如果空间超过原题空间限制 $(43.95\texttt{MB})$,扣除一半的分数。 --- 仅供练习哈希。其他高级算法也可以尝试。 ![](https://s2.ax1x.com/2020/03/11/8kaAMt.png)

题目描述

你需要维护一个序列,支持三种操作: 1.`add`:在数列中加入一个数 $x$ 2.`delete`:在数列中删除一个数 $x$ 3.`search`:在数列中查找一个数 $x$ ,若有此数返回`True`,否则返回`False`。 **请注意:**`add`**操作中可以出现相同的元素,此时删除时只能删除其中一个。**

输入格式

第一行一个整数 $T$ ,表示操作次数。 以下 $T$ 行 ,每行一个操作 ,先输入操作名 ,再输入操作数 $x$ 。

输出格式

若对于`delete`操作,若找不到对应的 $x$,输出`Failed`。若成功无需输出。 对于每组操作 $3$ ,输出对应的查找结果。

说明/提示

样例解释: 对于每次操作后,序列如下: $1:1$ $2:1,2$ $3:1,2$ 删除 $3$ ,但表中不存在,输出`Failed`。 $4:1,2,3$ $5:1,3$ 删除 $2$ ,成功。 $6:1,3$ 查找 $2$ ,不存在,输出`False`。 $7:1,3$ 查找 $3$ ,存在,输出`True`。 计分策略被 uid=87799 更改,所以子任务失效。 | 子任务编号 | 得分 | $x$ | $T$ | 特殊限制 | | :----------- | :----------- | :----------- | :----------- | :-----------| | $\texttt{Subtask}\ 1$ | $3$ | $\le10$ | $\le 10$ | 无 | | $\texttt{Subtask}\ 2$ | $21$ | $\le10^6$ | $\le 10^5$ | 无 | | $\texttt{Subtask}\ 3$ | $24$ | $\le 5\times10^8$ | $\le 10^3$ | `Add`操作中 $x$ 互不相等 | | $\texttt{Subtask}\ 4$ | $25$ | $\le 5\times10^8$ | $\le 6\times 10^5$ | 无 | | $\texttt{Subtask}\ 5$ | $27$ | $\le 5\times10^8$ | $\le 10^6$ | `delete`和`search`操作次数 $\le 2\times 10^3$ | **原题** by uid=205821。因为这个人经常脑子坏掉不处理哈希冲突。