2751: 先导课程
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:9
解决:2
题目描述
现有n门课程(假设课程编号为从0到n-1),课程之间有依赖关系,即可能存在两门课程,必须学完其中一门才能学另一门。现在给出m个依赖关系,问能否把所有课程都学完。
注:能同时学习多门课程时总是先学习编号最小的课程。
输入
第一行两个整数n、m(1≤n≤100,0≤m≤n(n−1)),分别表示课程数、依赖关系数;
接下来m行,每行两个整数u、v(0≤u≤n−1,0≤v≤n−1,u≠v),表示必须先学习编号为u的课程才能学习编号为v课程。数据保证不会有重边。
输出
如果能学完所有课程,那么输出一行Yes,然后在第二行输出学习课程编号的顺序,编号之间用空格隔开,行末不允许有多余的空格;如果不能学完所有课程,那么输出一行No,然后在第二行输出不能学习的课程门数。
样例输入 复制
4 5
0 1
0 2
0 3
1 2
3 2
样例输出 复制
Yes
0 1 3 2
提示
对应的依赖关系如下图所示。由于每次选择编号最小的顶点,因此学习顺序为0 1 3 2。