题目 30131

st 编号

查看题解 ↗GitHub ↗如何评测
题号
30131
时间限制
10000 ms
内存限制
1024 MB
标签
图论
来源
Library Checker (yosupo06) - st_numbering

【题目描述】

本题有 TT 组测试数据。

给定一张由 NN 个顶点和 MM 条边组成的无向图 GG。第 ii 条边连接顶点 uiu_i 和 viv_i。这张图不一定是简单图,但不包含任何自环。

再给定 GG 的两个顶点 ss 和 tt。

判断是否存在顶点的一个排列 p=(p0,…,pN−1)p = (p_0,\ldots,p_{N-1}) 满足下面的条件,若存在则求出这样一个排列。

  • 对每条边,若 pui<pvip_{u_i} < p_{v_i} 则把这条边从 uiu_i 定向到 viv_i,若 pvi<puip_{v_i} < p_{u_i} 则从 viv_i 定向到 uiu_i。则对于任意顶点 vv,都存在一条从 ss 到 tt 且经过 vv 的路径。

【输入】

文本
$T$
$N$ $M$ $s$ $t$
$u_0$ $v_0$
$\vdots$
$u_{M-1}$ $v_{M-1}$
$N$ $M$ $s$ $t$
$u_0$ $v_0$
$\vdots$
$u_{M-1}$ $v_{M-1}$
$\vdots$

【输出】

若不存在满足条件的排列 pp,输出 No。否则按如下格式输出一个排列 pp:

文本
Yes
$p_0$ $\ldots$ $p_{N-1}$

【输入样例】

文本
4
3 2 1 0
1 2
2 0
4 6 1 3
0 1
0 2
0 2
0 3
1 3
2 3
5 6 2 3
0 1
1 2
2 3
3 1
1 4
4 0
5 7 2 3
0 1
1 2
2 3
3 1
1 4
4 0
0 2

【输出样例】

文本
Yes
2 0 1
Yes
1 0 2 3
No
Yes
1 3 0 4 2

【输入样例2】

文本
3
2 0 0 1
2 2 0 1
0 1
1 0
3 2 0 1
0 1
1 0

【输出样例2】

文本
No
Yes
0 1
No

【数据范围】

  • 1≤T≤1000001 \leq T \leq 100000
  • 1≤N≤2000001 \leq N \leq 200000
  • 0≤M≤2000000 \leq M \leq 200000
  • 0≤s,t<N0 \leq s, t \lt N
  • s≠ts\neq t
  • 0≤ui,vi<N0 \leq u_i, v_i \lt N
  • ui≠viu_i\neq v_i
  • 所有测试数据的 NN 之和不超过 200000200000。
  • 所有测试数据的 MM 之和不超过 200000200000。

【来源】

Library Checker(yosupo06) st_numbering

本题为 special judge(输出任意合法解),暂不可本地评测。

数据下载

题目 30131 的公开数据

正在读取文件列表…

常用命令

题目 30131 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。