码迷,mamicode.com
首页 > 编程语言 > 详细

拓扑排序

时间:2020-04-06 19:03:00      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:图论   这一   需要   --   直接   目的   计数   并且   实现   

关于拓扑排序,基础图论中可以说是比较常见的题型,对于一些存在明显递推顺序的图论题目例如食物链计数,对于每一个结点存在一个明显的递推$f[k] = \sum(f[i])$ $f[i]$为与它连边,并且从图形上说在它上面的点的方案数,我们肯定不能直接去利用它“上面的点”的方案数,这时候我们需要一定的顺序,来实现我们的目的,这个过程称为拓扑排序。实现拓扑排序的过程有许多种,比如递归、优先队列与队列混用、单纯队列加上入度、出度数组,本人经常使用最后一种,就大概说一下实现过程。

第一步先将所有入度为0的点加入队列,然后拓展,在拓展过程中利用入度数组in[to],先对他所连点进行in[to]--操作,如果in[to]==0,就将这个点加入不断重复这一过程。

拓扑排序

标签:图论   这一   需要   --   直接   目的   计数   并且   实现   

原文地址:https://www.cnblogs.com/delta-cnc/p/12643592.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!