请用C++语言写出以下题目的拓扑排序算法的完整代码:蒜头君和他的同事们最近在玩一个好玩的游戏:互粉攻略。一共有 NN 个人参加游戏编号从 00 到 N - 1N−1游戏前每个人都会展示自己最靓丽的一面。当游戏开始时每个人可以选择去关注别人。当 AA 关注了 BB则 AA 就成了 BB 的粉丝但是并不意味着 BB 同时关注了 AA。当所有人都选好后游戏结束人气指数最高的人成为冠军。蒜头君制定了奇怪的
算法
我们可以将每个人看作一个节点,然后根据关注关系建立有向边,最后求出每个节点的入度和出度,即可计算出每个节点的人气指数。
具体实现可以使用拓扑排序算法,每次找到入度为0的节点,将其入度减一,并将其邻接节点的入度减一,直到所有节点都被访问。
时间复杂度
拓扑排序时间复杂度为 O(n+m),其中 n 是节点数,m 是边数。
C++ 代码
时间复杂度为 O(n+m)。
原文地址: https://www.cveoy.top/t/topic/einO 著作权归作者所有。请勿转载和采集!