摘要:
这个tarjan算法求的是有向图中的强连通分量,并将他们合并。 强连通分量 (如果会可以直接看tarjan部分)那什么是强连通分量呢?强连通嘛,就是图中任意两点能相互到达。那强连通分量就是一个图中的强连通子图。 环是最简单的强连通分量: 那你如果从1出发,只要转一圈就能经过所有点。 强连通分量不等于 阅读全文
posted @ 2021-02-24 16:18
zhangzeff
阅读(85)
评论(0)
推荐(0)
摘要:
并查集是一种树型数据结构,用于查找不相交的子集,并将他们合并在一起,简称并查集。并查集分为拆分、查找和合并三个操作。 并查集 查找 pre数组记录所有结点的前驱结点,根节点的前驱结点是它自己 find函数先找到x的根节点 int pre[1000];//1. int find(int x)//2. 阅读全文
posted @ 2021-02-24 16:04
zhangzeff
阅读(107)
评论(0)
推荐(0)
摘要:
kuangbin专题合集 ACM正确入门方式——数学lover 题目列表 POJ 2387 Til the Cows Come Home AC: 2020-02-05 21:08:20 POJ 2253 Frogger AC: 2020-02-11 20:17:15 POJ 1797 Heavy T 阅读全文
posted @ 2021-02-24 16:02
zhangzeff
阅读(30)
评论(0)
推荐(0)
摘要:
kuangbin专题合集 ACM正确入门方式——数学lover ——————————分割线—————————— 2020-01-27更新 快要考研了,在acm里面也没什么成就,唉 下学期还要参加蓝桥杯,就趁寒假在家复(yu)习考研课程的间隙练一练题吧,蓝桥杯报的Java组,水一个国奖算了,大学四年最 阅读全文
posted @ 2021-02-24 16:00
zhangzeff
阅读(97)
评论(0)
推荐(0)
摘要:
Dijkstra是单源最短路算法,用于求正权图源点到每个顶点的最短路。Dijkstra用到了一些BFS的思想 算法步骤 初始化dis数组和vis数组。 dis[i]表示源点到第i个点的距离,初始化为INF,表示无穷大。(INF为自己定义) vis[i]数组表示第i个点的最短路是否用于处理过未求出最短 阅读全文
posted @ 2021-02-24 15:51
zhangzeff
阅读(84)
评论(0)
推荐(0)
摘要:
Floyd是用来求全局任意两点之间的最短路的。 Floyd很好理解,依次用每个点去松弛其它所有边,感觉没什么好讲的。理解了dijkstra和SPFA之后,感觉Floyd就很简单易懂了,直接上代码吧。 时间复杂度:O(n^3) 空间复杂度:O(n^2) 算法实现 for(int k=0; k<n; k 阅读全文
posted @ 2021-02-24 15:47
zhangzeff
阅读(41)
评论(0)
推荐(0)
摘要:
SPFA是个很神奇的算法,他在一般情况下时间会跑的很快,肯定有人想用SPFA来代替dijkstra,但是有一种特殊的数据专门来卡SPFA,只能让dijkstra过,SPFA过不去,那就是网格图,我稍后会讲为什么网格图可以卡掉SPFA。 但是为什么SPFA跑不过dijkstra,大家还要用SPFA?因 阅读全文
posted @ 2021-02-24 15:25
zhangzeff
阅读(86)
评论(0)
推荐(0)

浙公网安备 33010602011771号