文件名称:ACM拓扑排序
文件大小:4KB
文件格式:TXT
更新时间:2019-12-16 06:16:33
ACM C++ 拓扑
假设给我们一个任意的图,它可能是也可能不是DAG(有向无圈图),推广拓扑排序算法,以使得给定有向图G的输入,它的输出是以下两者之一: (a) 一个拓扑排序,于是确定了G为DAG; 或者 (b) G中的一个圈,于是确定了G不是DAG. 注意到输出的解可能不是唯一的,输出任意一个答案即可。 输入 第一行两个数n,m,代表节点数和边数 m行,每行两个数代表一条有向边 测试数据范围:(1<=n<=50,0<=m<2500) 输出 YES 一个拓扑序,数字之间用逗号分隔。 或者 NO 一个圈,数字之间用逗号分隔。 样例输入 5 5 1 2 1 3 2 5 3 4 4 5 5 7 1 2 1 3 2 1 2 5 3 4 4 2 4 5 样例输出 YES 1,2,3,4,5 NO 1,3,4,2,1 提示 考虑不连通,自环,重边。 Case1: YES //( DAG) 1,2,3,4,5 //(Topological Ordering) Case2: NO //(Not A DAG) 1,3,4,2,1 //(Cycle)