QOJ.ac

QOJ

时间限制: 1 s 内存限制: 1024 MB 总分: 100

#4940. 令牌距离

统计

你正在玩一个棋盘游戏,棋盘上的方格编号从 $0$ 到 $10^9$(包含 $0$ 和 $10^9$),共有 $N$ 个编号从 $1$ 到 $N$ 的棋子。每个棋子位于其中一个方格内,多个棋子可能位于同一个方格。初始时,棋子 $i$ 位于方格 $T_i$。两个棋子之间的距离定义为第一个棋子所在的方格编号与第二个棋子所在的方格编号之差的绝对值。

对于一组棋子 $S$,我们按如下规则检查它们是否“间隔良好”(well-separated):

  • 令 $A$ 为 $S$ 中的棋子按所在方格编号从小到大排序后的列表。如果多个棋子位于同一个方格,则这些棋子按棋子编号从小到大排序。
  • 如果 $A$ 中的棋子少于三个,则这些棋子是间隔良好的。
  • 否则,当且仅当 $A$ 中相邻两个棋子之间的距离相等时,这些棋子才是间隔良好的。如果两个棋子在 $A$ 中的索引相差 $1$,则称它们是相邻的。

你需要执行 $Q$ 次操作,操作类型如下:

  1. 将棋子 $X$ 移动到方格 $Y$。
  2. 报告编号从 $L$ 到 $R$(包含 $L$ 和 $R$)的棋子集合是否间隔良好。

输入格式

输入的第一行包含两个整数 $N$ 和 $Q$ ($2 \le N \le 100\,000$; $1 \le Q \le 100\,000$),分别表示棋子的数量和操作的数量。下一行包含 $N$ 个整数 $T_i$ ($0 \le T_i \le 10^9$),表示棋子的初始方格位置。接下来的 $Q$ 行,每行包含以下格式之一的操作:

  • $1\ X\ Y$ ($1 \le X \le N$; $0 \le Y \le 10^9$) 将棋子 $X$ 移动到方格 $Y$。
  • $2\ L\ R$ ($1 \le L < R \le N$) 输出编号从 $L$ 到 $R$(包含 $L$ 和 $R$)的棋子集合是否间隔良好。

保证至少会进行一次第二类型的操作。

输出格式

对于每个第二类型的操作,按输入顺序,在一行中输出字符串 “YES” 或 “NO”,表示编号从 $L$ 到 $R$ 的棋子集合是否间隔良好。

样例

样例输入 1

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

样例输出 1

YES
NO
NO
YES
YES

说明 1

  • 初始时,棋子位于方格 $[1, 1, 1, 10, 1]$。
  • 对于第一次操作,在 $A = [1, 2, 3]$ 中,相邻棋子的距离为 $0$ 和 $0$。因此,这些棋子是间隔良好的。
  • 对于第二次操作,在 $A = [1, 2, 3, 5, 4]$ 中,相邻棋子的距离为 $0, 0, 0$ 和 $9$。因此,这些棋子不是间隔良好的。
  • 在第三次和第四次操作后,棋子位于方格 $[1, 1, 7, 10, 4]$。
  • 对于第五次操作,在 $A = [2, 3, 4]$ 中,相邻棋子的距离为 $6$ 和 $3$。因此,这些棋子不是间隔良好的。
  • 对于第六次操作,在 $A = [2, 5, 3, 4]$ 中,相邻棋子的距离为 $3, 3$ 和 $3$。因此,这些棋子是间隔良好的。
  • 对于第七次操作,$A = [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.