topsort | | jzoj[1226] | | NOIP2003神经网络

  今天终于通过了那道永远都看不懂题目的神经网络。。。

所谓拓扑排序,就是在有向无环图中,根据已经有的点和点之间的关系进行排序

引用jzyz教材上的栗子:比如说奶牛比较食量大小,我现在拿到的是cow[i]和cow[j]的吃草多少的关系,而不是两只牛吃草的多少,现在我需要得到牛的食量从大到小的顺序。

那么我们就可以发现,给的条件里面,要么cow【i】和cow【j】关系是确定的,要么他们关系不确定,但是绝对不存在两个人的关系是矛盾的,也就是没有环的存在,

给一个高端的说法叫做“有向无环图”;

这是拓扑排序的前提。

那么拓扑排序的过程如下:

step1、枚举所有度为0的点,入队

step2、把度为0的点枚举,然后去掉这条边,如果这条边指向的节点入度也为0,那么这个点也入队;

step3、队首++,重复step1,

那么这就完成了拓扑排序

原文地址:https://www.cnblogs.com/supersumax/p/5913837.html