裁判员GOLD KING
目录
1.使用算法
2.题意分析
3.思路讲解
4.最终代码
5.结语
使用算法:
A.拓扑排序 (主体)
B.小根堆 (实现编号从小到大)
题意分析
有NNN个队,MMM场比赛 一行数据中有P1,P2P_1,P_2P1 ,P2 ,代表P1P_1P1 队赢了P2P_2P2 队
求最终排名顺序 要求排名相同下编号小的在前
思路讲解
很明显的一道拓扑排序题目
不懂拓扑排序的看这
这里我们通过存储每个节点的入度来表示他的大致上的排名
通过样例1可以构造出一个这样的图
我们要从小到大的排名顺序,按照拓扑的思想就是每次选择图里入度为0的点(也就是当前没有人赢他)加入到序列里面
这样最终的序列就可以得出 但这样的序列是不唯一的 如按照拓扑排序样例一可以是1243或1423
题目要求排名相同,编号小的在前我们可以用一个小根堆来维护
什么你不知道小根堆原理?看这
这样就保证了排名相同情况下 编号小的在前
最终代码
结语PS.
该题目思维要点不多 初步掌握拓扑排序即可写出
官方的题解一个注释都没有 代码看起来都像AI写的hhhh