![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 54
m0_46135444
这个作者很懒,什么都没留下…
展开
-
最短路算法
一、单源最短路1、Dijkstra(迪杰斯特拉)算法假设图中1点为起点,求1点到其余个点的距离,将dis数组初始赋为极大值,且dis[1]=0。从1开始,我们先更新和1直接相连的节点,更新节点2、3、4。而后又可以从这三个节点选择一个继续搜下去。因为我们求的是最短路,所以我们选一个目前dis最小的节点进行扩展。假设当前节点为u,扩展到的节点为v,两点之间边权为w,只要在扩展图中发现存在dis[v]<dis[u]+w 就可以直接更新dis[ v ]的值了。也就是说每次都找到一个点来更新其他所有点原创 2021-09-01 22:31:50 · 145 阅读 · 0 评论 -
树的直径求解
定义:树的直径的定义:在一棵树中,每一条边都有权值,树中的两个点之间的距离,定义为连接两点的路径上边权之和,那么树上最远的两个点,他们之间的距离,就被称之为,树的直径。树的直径的别称,树的最长链。请注意:树的直径,还可以认为是一条路径,不一定是只是一个数值。树的直径一般有两种求解方法:1、两次搜索(BFS和DFS都可以)优点 : 可以通过一个新的数组记录路径信息(例如父节点与子节点之间的关系)缺点 : 无法处理 负边权(遇到 负边权 凉凉)思路:先任选一点,搜索找到距离该点最远的的点,该点原创 2021-08-30 22:11:17 · 342 阅读 · 0 评论