AT_arc196_d [ARC196D] Roadway

题目描述

有 $N$ 个城镇,编号为 $1,2,\ldots,N$,这些城镇按顺序排成一列。 此外,有 $N-1$ 条道路,每条道路连接相邻的两个城镇。第 $j$ 条道路($1\leq j\leq N-1$)连接城镇 $j$ 和城镇 $j+1$。你可以为每条道路 $j$ 设置一个**强度** $w_j$(可以为负数的整数)。 当一个人通过一条道路时,他的**体力**会发生变化。具体来说,体力为 $x$ 的人在通过第 $j$ 条道路后,体力会变为 $x+w_j$。 接下来有 $M$ 个人要在城镇之间移动。 第 $i$ 个人($1\leq i\leq M$)从体力为 $0$ 的状态下,从城镇 $S_i$ 出发,沿最短路径前往城镇 $T_i$。这里保证 $|S_i-T_i|>1$。另外,若 $i\neq j$,则 $(S_i,T_i)\neq (S_j,T_j)$。 第 $i$ 个人的要求如下: > 当他从城镇 $S_i$ 出发和到达城镇 $T_i$ 时,体力恰好为 $0$,在其他经过的城镇时,体力始终为正整数。 此外,除了通过道路导致的体力变化外,体力不会有其他变化。 请处理 $Q$ 个询问。对于第 $k$ 个询问($1\leq k\leq Q$),如果存在一种道路强度的设置方法,能满足第 $L_k,L_k+1,\ldots,R_k$ 个人的所有要求,则输出 `Yes`,否则输出 `No`。

输入格式

输入按以下格式从标准输入给出。 > $N$ $M$ $Q$ > $S_1$ $T_1$ > $S_2$ $T_2$ > $\vdots$ > $S_M$ $T_M$ > $L_1$ $R_1$ > $L_2$ $R_2$ > $\vdots$ > $L_Q$ $R_Q$

输出格式

输出 $Q$ 行。 第 $k$ 行输出 `Yes`,如果存在一种道路强度的设置方法,能满足第 $L_k,L_k+1,\ldots,R_k$ 个人的所有要求;否则输出 `No`。

说明/提示

### 数据范围 - $3\leq N\leq 4\times 10^5$ - $1\leq M\leq 2\times 10^5$ - $1\leq Q\leq 2\times 10^5$ - $1\leq S_i,T_i\leq N$ - $|S_i-T_i|>1$ - $(S_i,T_i)\neq (S_j,T_j)\ (i\neq j)$ - $1\leq L_k\leq R_k\leq M$ - 所有输入均为整数 ### 样例解释 1 对于第 $1$ 个询问,考虑将道路 $1,2,3,4$ 的强度分别设置为 $1,-1,1,-1$。此时,第 $1$ 个人从城镇 $4$ 出发,体力为 $0$,到达城镇 $3$ 时体力为 $1$,到达城镇 $2$ 时体力为 $0$。第 $2$ 个人从城镇 $1$ 出发,体力为 $0$,到达城镇 $2$ 时体力为 $1$,到达城镇 $3$ 时体力为 $0$。第 $3$ 个人从城镇 $3$ 出发,体力为 $0$,到达城镇 $4$ 时体力为 $1$,到达城镇 $5$ 时体力为 $0$。因此,这种设置方法能满足第 $1,2,3$ 个人的所有要求,所以第 $1$ 行输出 `Yes`。对于第 $2$ 个询问,不可能满足第 $2,3,4$ 个人的所有要求,因此输出 `No`。 由 ChatGPT 4.1 翻译