#P2553. The Bottom of a Graph
The Bottom of a Graph
题目描述
我们将使用图论中的以下标准定义。设 是一个非空有限集合,其元素称为顶点(或节点)。设 是笛卡尔积 的一个子集,其元素称为边。那么 称为有向图。
设 是一个正整数, 是一个长度为 的边序列,其中 且 对应一个顶点序列 。那么 称为从顶点 到顶点 的路径,并且我们说 是从 可达的,记作 。
以下是一些新定义。图 中的一个节点 称为汇点,如果对于 中每一个从 可达的节点 , 也可以从 可达。图的底部是所有汇点的子集,即 $\text{bottom}(G)=\{v \in V \mid \forall w \in V: (v \to w) \Rightarrow (w \to v)\}$。你需要计算某些图的底部。
输入格式
输入包含多个测试用例,每个测试用例对应一个有向图 。每个测试用例以一个整数 开始,表示图 的顶点数,顶点由集合 中的整数标识。假设 。接下来是一个非负整数 ,然后是 对顶点标识符 ,表示 。这些指定的边之外没有其他边。最后一个测试用例后跟一个。
输出格式
对于每个测试用例,在一行中输出指定图的底部。为此,按升序打印所有汇点的编号,用单个空格分隔。如果底部为空,则输出一个空行。
输入样例 1
3 3
1 3 2 3 3 1
2 1
1 2
0
输出样例 1
1 3
2
来源
乌尔姆年地区赛(试题来源)