题库首页 › 青少年软件编程(C语言) › 题目 4726

课程表 现在你总共有n门课需要选,记为0到n-1。在选修某些课程之前需要一些先修课程。例如,想要学习课程0,你需要先完成课程1,我们用一个匹配来表示他们:[0, 1]。给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习? 时间限制:1000 内存限制:65536 输入 多组数据。每组数据第一行是n和m,n表示有n门课程,m表示有m组依赖关系,接下来的m行是依赖关系的具体信息a b,表示第a门课程依赖第b门课程。 0<=n <=1000,0 <= m <= 4000 两组数据之间可能有空行 输出 对每组数据,能完成输出 True,不能完成输出 False 样例输入 2 1 1 0 2 2 1 0 0 1 样例输出 True False 提示 示例2解释: 总共有2门课程。学习课程1之前,你需要先完成课程0;并且学习课程0之前,你还应先完成课程1。这是不可能的。

正确答案:参考程序(C++):课程表拓扑排序。判断有向图是否有环,无环可完成输出True。用入度拓扑或DFS判环。样例1 0→True,0↔1环→False。核心:拓扑排序判环。

试卷来源:202112 青少年等级考试C/C++真题五级

本卷相关题目

在线做题 同科目题库