6332 - 必经之路

题目描述

给定一张有 n 个结点 m 条边的有向图 GG 中的结点依次以 1,2,\ldots,n 编号。第 i 条边(1\le i\le m)从结点 u_i 指向结点 v_i

G 中任一入度为 0 的结点可以作为合法起点,任一出度为 0 的结点可以作为合法终点。

如果 G 中所有可能的从合法起点到合法终点的路径都会经过结点 u,则称 u 是必经点。注意必经点可以为合法起点或合法终点。

请你求出 G 中所有必经点的编号。

例如,在下图中合法起点有点 1 与点 2,合法终点有点 7 与点 8

(1)           (5)---->(7)
 \             ^ \    ^
  v           /    v  /
  (3)       /      (6)
  ^  \    /         \
 /    v  /            v
(2)---->(4)           (8)

所有合法起点到合法终点的路径为:

  • 1\to3\to4\to5\to7
  • 1\to3\to4\to5\to6\to7
  • 1\to3\to4\to5\to6\to8
  • 2\to3\to4\to5\to7
  • 2\to3\to4\to5\to6\to7
  • 2\to3\to4\to5\to6\to8
  • 2\to4\to5\to7
  • 2\to4\to5\to6\to7
  • 2\to4\to5\to6\to8

因此必经点有两个,编号分别为 4,5

输入

第一行,两个正整数 n,m,表示有向图 G 中的结点数与边数。

接下来 m 行,每行两个正整数 u_i,v_i,表示一条从结点 u_i 指向结点 v_i 的有向边。

保证 G 中至少有一个合法起点,至少有一个合法终点,且至少存在一条从一个合法起点到一个合法终点路径,同时不存在孤立点(即出度和入度都为 0 的点)。

输出

第一行,一个整数,表示必经点的数量 k

如果存在必经点,则第二行从小到大输出 G 中所有必经点的编号。

样例

输入

8 9
1 3
2 3
3 4
4 5
5 6
6 7
6 8
2 4
5 7

输出

2
4 5

输入

8 9
1 3
2 3
3 4
4 5
5 6
6 7
6 8
2 5
4 7

输出

0
说明

数据范围

对于 40\% 的测试点,保证 1\le n\le1001\le m\le200

对于所有测试点,保证 1\le n\le10001\le m\le2000。保证 G 中至少有一个合法起点,至少有一个合法终点,且至少存在一条从一个合法起点到一个合法终点路径,同时不存在孤立点(即出度和入度都为 0 的点)。

标签
题目参数
时间限制 1 秒
内存限制 510 MB
提交次数 4
通过人数 3
金币数量 0 枚
难度 入门


上一题 下一题