A167220.[GESP202609 七级]必经之路
普及/提高-
GESP
通过率:0%
时间限制:1.00s
内存限制:512MB
题目描述
给定一张有 n 个结点 m 条边的有向图 G,G 中的结点依次以 1,2,…,n 编号。第 i 条边(1≤i≤m)从结点 ui 指向结点 vi。
G 中任一入度为 0 的结点可以作为合法起点,任一出度为 0 的结点可以作为合法终点。
如果 G 中所有可能的从合法起点到合法终点的路径都会经过结点 u,则称 u 是必经点。注意必经点可以为合法起点或合法终点。
请你求出 G 中所有必经点的编号。
例如,在下图中合法起点有点 1 与点 2,合法终点有点 7 与点 8。
(1) (5)---->(7)
\ ^ \ ^
v / v /
(3) / (6)
^ \ / \
/ v / v
(2)---->(4) (8)
所有合法起点到合法终点的路径为:
- 1→3→4→5→7
- 1→3→4→5→6→7
- 1→3→4→5→6→8
- 2→3→4→5→7
- 2→3→4→5→6→7
- 2→3→4→5→6→8
- 2→4→5→7
- 2→4→5→6→7
- 2→4→5→6→8
因此必经点有两个,编号分别为 4,5。
输入格式
第一行,两个正整数 n,m,表示有向图 G 中的结点数与边数。
接下来 m 行,每行两个正整数 ui,vi,表示一条从结点 ui 指向结点 vi 的有向边。
保证 G 中至少有一个合法起点,至少有一个合法终点,且至少存在一条从一个合法起点到一个合法终点路径,同时不存在孤立点(即出度和入度都为 0 的点)。
输出格式
第一行,一个整数,表示必经点的数量 k。
如果存在必经点,则第二行从小到大输出 G 中所有必经点的编号。
输入输出样例
输入#1
8 9 1 3 2 3 3 4 4 5 5 6 6 7 6 8 2 4 5 7
输出#1
2 4 5
输入#2
8 9 1 3 2 3 3 4 4 5 5 6 6 7 6 8 2 5 4 7
输出#2
0
说明/提示
数据范围
对于 40% 的测试点,保证 1≤n≤100,1≤m≤200。
对于所有测试点,保证 1≤n≤1000,1≤m≤2000。保证 G 中至少有一个合法起点,至少有一个合法终点,且至少存在一条从一个合法起点到一个合法终点路径,同时不存在孤立点(即出度和入度都为 0 的点)。
输入解题思路,AI测评打分。不知道怎么写?