已结束 GESP春节巅峰赛#17

A4737 | 线性探查法

来源官方 / 2025
时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

给定一个大小为 $N$ 的哈希表,并定义以下哈希函数:

$$ H(X) = X \mathbin{\mathrm{mod}} N $$

这里,$X \mathbin{\mathrm{mod}} N$ 表示 $X$ 除以 $N$ 后的余数。

接下来给出 $Q$ 个查询,对于每个查询 $i$,若 $X_i$ 已在哈希表中,请你输出其在哈希表中的位置;否则将其插入哈希表,再输出其插入的位置。

我们使用线性探查法解决哈希冲突,即对于要插入的元素 $X$,若 $H(X)$ 已经存在其他元素,则依次检查 $H(X + 1), H(X + 2), H(X + 3), \cdots$ 直至找到内容为空的单元。

$\large{数据范围}$

- $1 \le Q \le N \le 10^5$
- $1 \le X_i \le 10^{12}$

输入格式

对于每个测试文件,格式如下:

$\tt{N\ Q}$

$\tt{X_1}$

$\tt{X_2}$

$\tt{\vdots}$

$\tt{X_Q}$

输出格式

对于每个查询 $i$,若 $X_i$ 已在哈希表中,输出其位置,否则将其插入到哈希表,并输出插入的位置。

输入输出样例

输入 #1
5 5
13
28
52
2
100
输出 #1
3
4
2
0
1
C++ 编辑器
输入
输出