![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
TodayMagic
这个作者很懒,什么都没留下…
展开
-
拓扑排序(topsort)的两个应用
应用一:检测有向图中是否有环,即将入度为0的点加入队列应用二:找出无向图中存在的环,即将度为1的点加入队列,剩下没入过队的点就是环上的点。bool topsort(){ int cnt = 0; queue<int> q; for(int i = 0; i < n; i++){ if(inDegree[i] == 0) q.push(i); } while(!q.empty()){ int u =原创 2021-03-28 10:17:40 · 298 阅读 · 0 评论 -
Floyd(弗洛伊德)算法
在看我这篇博客之前,请大家观看B站的视频Dijkstra,floyd算法动画演示讲解,这位up主讲的很好,然后你看模板代码,相信你会有所收获。 上篇博客我讲了Dijkstra算法,只要你理解了Dijkstra算法,那么Floyd算法就会变得很简单,无非就是求全员最短路问题,即,图中任何两个顶点的最短距离。原理:如果存在顶点 k ,使得顶点 i 和顶点 j 之间的当前最短路距离缩短,则使用 k 做为中转点,即由 i —> j 变为 i — k — j。表达式:如果dis[i][k] + dis[k原创 2021-01-23 17:38:38 · 165 阅读 · 0 评论