AT_abc434_c [ABC434C] Flapping Takahashi
题目描述
Takahashi 决定用气球在天空中飞翔。Takahashi 在时间 $0$ 时刻的高度为 $H$(单位为秒),并且将从现在开始飞行 $10^9$ 秒。
Takahashi 每秒钟最多可以改变 $1$ 的高度。但是,他不能让自己的高度降到 $0$ 或以下。
- 换句话说,若 $F(t)$ 表示 Takahashi 在时间 $t$ 时的高度,则 $F(t)$ 满足以下所有条件:
- $F(0) = H$;
- $-1 \leq \dfrac{F(u) - F(t)}{u - t} \leq 1$,其中 $0 \leq t < u \leq 10^9$;
- $F(t) > 0$,其中 $0 \leq t \leq 10^9$。
现有 $N$ 个关于高度的目标,第 $i$ 个目标要求在时间 $t_i$ 时他的高度至少为 $l_i$,至多为 $u_i$。
询问是否存在一种飞行方式,使 Takahashi 可以满足所有目标。
给出 $T$ 组测试数据,请分别解答每一组情况。
输入格式
输入从标准输入读入,格式如下,其中 $\mathrm{case}_i$ 表示第 $i$ 组测试数据:
> $ T $
> $ \mathrm{case}_1 $
> $ \mathrm{case}_2 $
> $ \vdots $
> $ \mathrm{case}_T $
每组测试数据格式如下:
> $ N $ $ H $
> $ t_1 $ $ l_1 $ $ u_1 $
> $ t_2 $ $ l_2 $ $ u_2 $
> $ \vdots $
> $ t_N $ $ l_N $ $ u_N $
输出格式
输出 $T$ 行,第 $i$ 行是字符串 `Yes`(如果存在可行方案),否则输出 `No`,表示第 $i$ 组测试数据的答案。
说明/提示
### 样例解释 1
对于第一组测试数据,Takahashi 可以按如下方式飞行以满足所有目标:
- 在时间 $0$ 时,他的高度为 $5$。
- 从时间 $0$ 到时间 $2$,以每秒 $0.5$ 的速度下降。
- 在时间 $2$ 时,高度为 $5 - 0.5 \times 2 = 4$。
- 从时间 $2$ 到时间 $3$,保持高度不变。
- 在时间 $3$ 时,高度为 $4$,满足第一个目标。
- 从时间 $3$ 到时间 $8$,以每秒 $1$ 的速度上升。
- 在时间 $8$ 时,高度为 $4 + 1 \times 5 = 9$,满足第二个目标。
对于第二组测试数据,无论怎样飞行都无法满足所有目标。
### 数据范围
- $1 \leq T \leq 10^5$
- $1 \leq N \leq 10^5$
- $1 \leq H \leq 10^9$
- $1 \leq t_1 < t_2 < \dots < t_N \leq 10^9$
- $1 \leq l_i \leq u_i \leq 10^9$
- 所有测试数据中 $N$ 的总和不超过 $10^5$。
- 所有输入数均为整数。
由 ChatGPT 5 翻译