#P1763. 拓扑序列
拓扑序列
题目描述
给定一个 n 个点 m 条边的有向图,点的编号是 1 到 n,图中可能存在重边和自环。
请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出 −1。
若一个由图中所有点构成的序列 A 满足:对于图中的每条边 (x,y),x 在 A 中都出现在 y 之前,则称 A 是该图的一个拓扑序列。
如果一个图有拓扑序列,那这个图也可以叫拓扑图
tips: 就是一个有向图的点按照某种顺序排列,并且还按照原来图的边关系相连,其每个点指向后面的点,每个点不会指向前面的点或者自己
例如对于上图
其一个可行的拓扑序列可以为
1 2 3 5 4 6
如图 每个点的有向边都是指向后面的点不会指向前面的点
也可以为
2 1 3 5 4 6
输入格式
第一行包含两个整数 n 和 m。 1<=n,m<=100000;
接下来 m 行,每行包含两个整数 x 和 y,表示存在一条从点 x 到点 y 的有向边 (x,y)。
输出格式
共一行,如果这个图是拓扑图,输出"YES" 否则输出"NO"
样例
6 9
1 5
1 4
2 3
2 5
3 5
3 6
4 6
5 6
5 4
YES
提示
by 20高晓飞