AT_abc228_d.[ABC228D] Linear Probing

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一个长度为 N=220N = 2^{20} 的数列 A=(A0,A1,…,AN−1)A = (A_0, A_1, \dots, A_{N-1})。初始时,所有元素均为 −1-1。

请依次处理 QQ 个查询。第 ii 个查询由整数 tit_i(ti=1t_i = 1 或 ti=2t_i = 2)和整数 xix_i 给出,具体内容如下:

  • 当 ti=1t_i = 1 时,依次进行以下操作:
    1. 令整数 h=xih = x_i。
    2. 当 Ah mod N≠−1A_{h \bmod N} \neq -1 时,不断将 hh 的值加 11。在本题的约束下,可以证明此操作会在有限次内结束。
    3. 用 xix_i 替换 Ah mod NA_{h \bmod N} 的值。
  • 当 ti=2t_i = 2 时,输出当前 Axi mod NA_{x_i \bmod N} 的值。

其中,对于整数 a,ba, b,a mod ba \bmod b 表示 aa 除以 bb 的余数。

输入格式

输入按以下格式从标准输入给出。

QQ
t1 x1t_1\ x_1
⋮\vdots
tQ xQt_Q\ x_Q

输出格式

对于每个 ti=2t_i = 2 的查询,依次输出答案,每个答案占一行。保证至少存在一个 ti=2t_i = 2 的查询。

输入输出样例

  • 输入#1

    4
    1 1048577
    1 1
    2 2097153
    2 3

    输出#1

    1048577
    -1

说明/提示

限制条件

  • 1≤Q≤2×1051 \leq Q \leq 2 \times 10^5
  • ti∈{1,2}t_i \in \{1, 2\}(1≤i≤Q1 \leq i \leq Q)
  • 0≤xi≤10180 \leq x_i \leq 10^{18}(1≤i≤Q1 \leq i \leq Q)
  • 至少存在一个 ti=2t_i = 2 的查询。
  • 输入均为整数。

样例解释 1

由于 x1 mod N=1x_1 \bmod N = 1,所以第 1 个查询后 A1=1048577A_1 = 1048577。
第 2 个查询时,初始 h=x2h = x_2,但 Ah mod N=A1≠−1A_{h \bmod N} = A_1 \neq -1,因此 hh 增加 11,此时 Ah mod N=A2=−1A_{h \bmod N} = A_2 = -1,所以本次查询后 A2=1A_2 = 1。
第 3 个查询时,输出 Ax3 mod N=A1=1048577A_{x_3 \bmod N} = A_1 = 1048577。
第 4 个查询时,输出 Ax4 mod N=A3=−1A_{x_4 \bmod N} = A_3 = -1。
注意,本题中 N=220=1048576N = 2^{20} = 1048576 是常数,输入中不会给出。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页