#ABC304Ex. 受限拓扑排序

受限拓扑排序

受限拓扑排序

题目描述

给你一个具有 NN 个顶点和 MM 条边的有向图。 对于 i=1,2,,Mi = 1, 2, \ldots, M,第 ii 条边是从顶点 sis_i 指向顶点 tit_i 的有向边。

请判断是否存在一个 (1,2,,N)(1, 2, \ldots, N) 的排列 P=(P1,P2,,PN)P = (P_1, P_2, \ldots, P_N) 同时满足以下两个条件,如果存在,请给出一个例子。

  • 对所有 i=1,2,,Mi = 1, 2, \ldots, M,有 Psi<PtiP_{s_i} \lt P_{t_i}
  • 对所有 i=1,2,,Ni = 1, 2, \ldots, N,有 LiPiRiL_i \le P_i \le R_i

输入格式

输入按以下格式从标准输入给出:

N M
s_1 t_1
s_2 t_2
⋮
s_M t_M
L_1 R_1
L_2 R_2
⋮
L_N R_N

输出格式

如果不存在满足条件的 PP,输出 No。如果存在满足条件的 PP,在第一行输出 Yes,在第二行以空格分隔输出 PP 的元素,格式如下。 如果存在多个满足条件的 PP,任意一个都会被接受。

Yes
P_1 P_2 … P_N

样例

5 4
1 5
2 1
2 5
4 3
1 5
1 3
3 4
1 3
4 5
Yes
3 1 4 2 5

P=(3,1,4,2,5)P = (3, 1, 4, 2, 5) 满足条件。事实上,

对于第一条边 (s1,t1)=(1,5)(s_1, t_1) = (1, 5),有 P1=3<5=P5P_1 = 3 \lt 5 = P_5;

对于第二条边 (s2,t2)=(2,1)(s_2, t_2) = (2, 1),有 P2=1<3=P1P_2 = 1 \lt 3 = P_1;

对于第三条边 (s3,t3)=(2,5)(s_3, t_3) = (2, 5),有 P2=1<5=P5P_2 = 1 \lt 5 = P_5;

对于第四条边 (s4,t4)=(4,3)(s_4, t_4) = (4, 3),有 P4=2<4=P3P_4 = 2 \lt 4 = P_3

此外,

L1=1P1=3R1=5L_1 = 1 \le P_1 = 3 \le R_1 = 5,

L2=1P2=1R2=3L_2 = 1 \le P_2 = 1 \le R_2 = 3,

L3=3P3=4R3=4L_3 = 3 \le P_3 = 4 \le R_3 = 4,

L4=1P4=2R4=3L_4 = 1 \le P_4 = 2 \le R_4 = 3,

L5=4P5=5R5=5L_5 = 4 \le P_5 = 5 \le R_5 = 5

2 2
1 2
2 1
1 2
1 2
No

不存在满足条件的 PP,因此输出 No。

数据范围

  • 2N2×1052 \le N \le 2 \times 10^5
  • $0 \le M \le \min\lbrace 4 \times 10^5, N(N-1) \rbrace$
  • 1si,tiN1 \le s_i, t_i \le N
  • sitis_i \neq t_i
  • iji \neq j 时,(si,ti)(sj,tj)(s_i, t_i) \neq (s_j, t_j)
  • 1LiRiN1 \le L_i \le R_i \le N
  • 所有输入值均为整数。

提示

答案不唯一,输出任意合法解即可。

难度 NOI/NOI+/CTS
通过率
尝试 0
已通过 0
ID
2954
类型
传统题
Time Limit
647ms
Memory Limit
1024MiB
上传者
标签