题目大意 给出N个队伍,M个关系,P1 P2代表P1队在比赛中赢了P2队,要求输出所有队伍的名次关系,当有多种情况时,总是将序号最小的队伍排在前面。 解题思路 题目本来是一道很单纯的拓扑排序题,但是因为最后一句话的缘故使得自己莫名WA了N次,细节决定成败啊。。 对于传统的拓扑排序题是可以使用多种方式来写的,但是如果这道题你准备使用邻接表存关系,使用DFS来排序的话,恭喜你。。你已经WA一半了。。 首先普及一下拓扑排序的知识: 拓扑排序实际上是给出图的一系列偏序关系,求出图中所有顶点的全序关系的算法。对于有向无环图是适用的,也可以用来判断图中是否有环路存在。 但是拓扑排序求出的序列,如果不加以特殊规范的话,可能会存在多种情况。如图: 该图的拓扑序列有两种表示方法,即ABCD和ACBD,如果在复杂一些,只要在拓扑序列中不存在直接的逆序关系则该序列都是合法的,这就导致情况的多样性。具体实现的过程中,初