竞赛
考级
并查集求最小环 把每个同学看成一个点,信息的传递就是在他们之间连有向边,游戏轮数就是求最小环。 图论求最小环,我在里面看到了并查集。 假如说信息由A传递给B,那么就连一条由A指向B的边,同时更新A的父节点,A到它的父节点的路径长也就是B到它的父节点的路径长+1。 这样我们就建立好了一个图,之后信息传递的所有环节都按照这些路径。游戏结束的轮数,也就是这个图里最小环的长度。 如果有两个点祖先节点相同,那么就可以构成一个环,长度为两个点到祖先节点长度之和+1。
稍微分析一下可知是求一个有向且无自环的图的最小环,但是明显不能用Floyd求最小环,所以考虑使用Tarjan求强连通,由于边数等于点数,所以每个强连通分量内有且只有一个环,所以求最小的强连通分量就是求最小环。 欢迎加入团队
链接描述
提交答案之后,这里将显示提交结果~