QOJ.ac

QOJ

Límite de tiempo: 2.0 s Límite de memoria: 1024 MB Puntuación total: 100 Hackeable ✓

#10806. 删除素数

Estadísticas

有 $n$ 个球排成一行。每个球上都有一个数字,第 $i$ 个球上的数字为 $i$ ($1 \le i \le n$)。

每一轮中,我们选择索引为 $1$ 或质数的球,并按顺序将它们从队列中踢出。之后,我们开始下一轮,剩余的球保持相对位置不变,索引从 $1$ 开始重新编号(但球上的数字不会改变)。我们重复此过程,直到没有球剩下。存在一个踢出序列 $D$,初始为空。每次踢出一个球时,球上的数字就会被追加到 $D$ 中。

例如,当 $n = 6$ 时,我们有球 $[1, 2, 3, 4, 5, 6]$ 排成一行。在第一轮中,我们按顺序踢出球 $[1, 2, 3, 5]$(索引为 $1, 2, 3, 5$),剩余的球为 $[4, 6]$。在第二轮中,我们按顺序踢出 $[4, 6]$(索引为 $1, 2$),此时没有球剩下。因此,踢出序列为 $D = [1, 2, 3, 5, 4, 6]$。注意 $D$ 的索引始终从 $1$ 开始。

现在你需要回答两类问题:

  • 类型 1:给定 $n$ 和 $k$,求 $k$ 在踢出序列中的索引。换句话说,找到 $x$ 使得 $D[x] = k$。
  • 类型 2:给定 $n$ 和 $k$,求踢出序列中第 $k$ 个数字。换句话说,找到 $x$ 使得 $D[k] = x$。

输入格式

第一行包含一个整数 $T$ ($1 \le T \le 2 \cdot 10^5$),表示查询次数。 接下来的 $T$ 行,每行包含三个整数 $t, n, k$ ($t \in \{1, 2\}, 1 \le k \le n \le 10^6$),表示上述类型 $t$ 的查询。

输出格式

对于每个查询,输出一行答案。

样例

输入 1

10
1 5 1
1 5 2
1 5 3
1 5 4
1 5 5
2 5 1
2 5 2
2 5 3
2 5 4
2 5 5

输出 1

1
2
3
5
4
1
2
3
5
4

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.