#L4825. 「联合省选 2025」推箱子

    ID: 3212 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>其他二分查找数据结构前缀和树结构并查集贪心排序

「联合省选 2025」推箱子

题目描述

在一条无穷长的数轴上摆放着 nn 个箱子。第 ii (1in)(1 \leq i \leq n) 个箱子在时刻 00 位于数轴 aia_i 处,而你希望在时刻 tit_i 以及之后的所有时刻,这个箱子处在数轴的 bib_i 处。保证序列 [a1,,an][a_1, \ldots, a_n][b1,,bn][b_1, \ldots, b_n] 单调递增

为此,从时刻 00 开始的每个单位时间里,你可以将某个箱子在数轴上移动一个单位长度,也可以什么都不做。你需要保证任意时刻每个点上都只有一个箱子。形式化地,每个单位时间里你可以按照以下方式进行一次操作,也可以不进行操作:

选择任意一个箱子。记其编号为 ii,它目前的位置为 pip_i

选择一个方向 d±1d \in {\pm1},其中 d=1d = 1 代表向右,d=1d = -1 代表向左。你需要保证数轴上 (pi+d)(p_i + d) 处没有箱子。

ii 号箱子从点 pip_i 移动到点 (pi+d)(p_i + d) 处。

你想知道,是否存在一种操作方法同时满足所有箱子的要求,即对于任意 1in1 \leq i \leq n,第 ii 个箱子在时刻 tit_i 以及之后的所有时刻都处于数轴的 bib_i 处。

输入格式

从文件 move.in 中读入数据。

本题有多组测试数据。输入的第一行两个整数 cc, TT,分别表示测试点编号和测试数据组数,接下来输入每组测试数据。样例满足 c=0c = 0

对于每组测试数据,第一行一个整数 nn,表示箱子的个数,接下来 nn 行,第 ii (1in)(1 \leq i \leq n) 行三个整数 aia_i, bib_i, tit_i,分别表示第 ii 个箱子的初始位置、目标位置和时刻要求。

输出格式

输出到文件 move.out 中。

对于每组测试数据,输出一行一个字符串 Yes 或 No,表示是否存在一种操作方法同时满足所有箱子的要求。

样例 1

输入:

0 2
2
4 5 1
6 7 1
3
4 5 3
7 6 1
10 8 4

输出:

No
Yes

该组样例共有 22 组测试数据。

  • 对于第一组测试数据,答案是否定的。将 11 号箱子由点 44 移动到点 55,并将 22 号箱子由点 66 移动到点 77,至少需要两个单位时间,因此不可能在时刻 11 同时满足两个箱子的条件。

  • 对于第二组测试数据,答案是肯定的,例如如下方法同时满足了所有箱子的要求:

    • 在时刻 00 至时刻 11 的一个单位时间,将 22 号箱子由点 77 移动到点 66

    • 在时刻 11 至时刻 22 的一个单位时间,将 33 号箱子由点 1010 移动到点 99

    • 在时刻 22 至时刻 33 的一个单位时间,将 11 号箱子由点 44 移动到点 55

    • 在时刻 33 至时刻 44 的一个单位时间,将 33 号箱子由点 99 移动到点 88

    • 在之后的所有单位时间,什么都不做。

样例 2

见选手目录下的 move/move2.in 与 move/move2.ans。

该组样例共有 6 组测试数据,所有数据均满足特殊性质 A。其中每组测试数据的 n 分别为 77720030002×1057、7、7、200、3\,000、2 \times 10^5,且测试数据 131 \sim 3 满足 ai,bi15a_i, b_i \leq 15,测试数据 4 满足 ai,bi3,000a_i, b_i \leq 3,000

样例 3

见选手目录下的 move/move3.in 与 move/move3.ans。

该组样例共有 6 组测试数据,所有数据均满足特殊性质 B。其中每组测试数据的 n 分别为 77720030002×1057、7、7、200、3\,000、2 \times 10^5,且测试数据 131 \sim 3 满足 ai,bi15a_i, b_i \leq 15,测试数据 4 满足 ai,bi3,000a_i, b_i \leq 3,000

样例 4

见选手目录下的 move/move4.in 与 move/move4.ans。

该组样例共有 6 组测试数据,所有数据均满足特殊性质 C。其中每组测试数据的 n 分别为 77720030002×1057、7、7、200、3\,000、2 \times 10^5,且测试数据 1 \sim 3 满足 ai,bi15a_i, b_i \leq 15,测试数据 4 满足 ai,bi3,000a_i, b_i \leq 3,000

样例 5

见选手目录下的 move/move5.in 与 move/move5.ans。

该组样例共有 6 组测试数据。其中每组测试数据的 n 分别为 77720030002×1057、7、7、200、3\,000、2 \times 10^5,且测试数据 131 \sim 3 满足 ai,bi15a_i, b_i \leq 15,测试数据 4 满足 ai,bi3,000a_i, b_i \leq 3,000

子任务

对于所有测试点,

  • 1T61 \leq T \leq 6

  • 1n2×1051 \leq n \leq 2 \times 10^5

  • 1in\forall 1 \leq i \leq n, 1ai,bi1091 \leq a_i, b_i \leq 10^9, 0ti10160 \leq t_i \leq 10^{16}

  • 1i<n\forall 1 \leq i < n, ai<ai+1a_i < a_{i+1}, bi<bi+1b_i < b_{i+1}

测试点编号 n ≤ a_i, b_i ≤ 特殊性质
1 7 15 A
2, 3
4 200 3,000 A
5 B
6, 7
8 3,000 10^9 A
9 B
10, 11
12 8×1048 \times 10^4 5×1055 \times 10^5 A
13 B
14, 15 C
16~18
19, 20 2×1052 \times 10^5 10910^9 B
21, 22 C
23~25
  • 特殊性质 A:1i<jn\forall 1 \leq i < j \leq n, ti=tjt_i = t_j

  • 特殊性质 B:1in\forall 1 \leq i \leq n, aibia_i \leq b_i1i<n\forall 1 \leq i < n, bi<ai+1b_i < a_{i+1}

  • 特殊性质 C:1in\forall 1 \leq i \leq n, aibia_i \leq b_i