AT_abc304_h [ABC304Ex] Constrained Topological Sort
题目描述
给定一个有 $N$ 个顶点、$M$ 条边的有向图。对于 $i=1,2,\ldots,M$,第 $i$ 条边是从顶点 $s_i$ 指向顶点 $t_i$ 的有向边。
请判断是否存在一个 $N$ 元的排列 $P=(P_1,P_2,\ldots,P_N)$,满足以下两个条件,并在存在时给出一个例子:
- 对于所有 $i=1,2,\ldots,M$,都有 $P_{s_i} < P_{t_i}$。
- 对于所有 $i=1,2,\ldots,N$,都有 $L_i \leq P_i \leq R_i$。
输入格式
输入以如下格式从标准输入读入。
> $N$ $M$
> $s_1$ $t_1$
> $s_2$ $t_2$
> $\vdots$
> $s_M$ $t_M$
> $L_1$ $R_1$
> $L_2$ $R_2$
> $\vdots$
> $L_N$ $R_N$
输出格式
如果不存在满足条件的 $P$,输出 `No`。如果存在,第一行输出 `Yes`,第二行输出 $P$ 的每个元素,空格分隔。如果有多个满足条件的 $P$,输出其中任意一个均可。
> Yes
> $P_1$ $P_2$ $\ldots$ $P_N$
说明/提示
### 限制条件
- $2 \leq N \leq 2 \times 10^5$
- $0 \leq M \leq \min\{4 \times 10^5, N(N-1)\}$
- $1 \leq s_i, t_i \leq N$
- $s_i \neq t_i$
- $i \neq j \implies (s_i, t_i) \neq (s_j, t_j)$
- $1 \leq L_i \leq R_i \leq N$
- 输入均为整数
### 样例解释 1
$P=(3,1,4,2,5)$ 满足条件。实际上,
- 第 1 条边 $(s_1, t_1) = (1, 5)$,有 $P_1=3 < 5=P_5$
- 第 2 条边 $(s_2, t_2) = (2, 1)$,有 $P_2=1 < 3=P_1$
- 第 3 条边 $(s_3, t_3) = (2, 5)$,有 $P_2=1 < 5=P_5$
- 第 4 条边 $(s_4, t_4) = (4, 3)$,有 $P_4=2 < 4=P_3$
并且,
- $L_1=1 \leq P_1=3 \leq R_1=5$
- $L_2=1 \leq P_2=1 \leq R_2=3$
- $L_3=3 \leq P_3=4 \leq R_3=4$
- $L_4=1 \leq P_4=2 \leq R_4=3$
- $L_5=4 \leq P_5=5 \leq R_5=5$
也都成立。
### 样例解释 2
不存在满足条件的 $P$,因此输出 `No`。
由 ChatGPT 4.1 翻译