【题目描述】
给出n个点, m条边的有向图, 对于每个点v, 求从v出发能到达的编号最大的点
【输入输出】
输入格式:
第一行为两个整数n,m
接下来m行, 每行2个整数u,v, 表示u到v有条有向边, 点用1到n的数字编号
输出格式:
n个整数, 表示从i能到达的最大编号的结点
思路:
一开始想用dp解决, 但WA了6个点
后来发现这张图不一定是DAG, 无法直接使用dp
于是就只能先用tarjan把图缩成DAG, 再用dp解决
(貌似题解中说可以反向bfs, 没试过所以没有代码)
代码:
1 |
|
(所以说有些题目还是没有想象中的那么简单啊…)