- 博客(23)
- 收藏
- 关注
原创 四种最短路算法的总结:Dijkstra,堆优化Dijkstra,bellman_ford,spfa
朴素的dijkstra算法用贪心思想,有点类似于最小生成树中的prim算法,将整张图分为已经确定了最小路径的点所组成的集合S与V-S,每次都遍历S与V-S的路径,如果V-S中的某个节点到S集合的路径dist[j]要小于其到源点的距离,则进行松弛操作dist[j]=dist[t]+w[t][j];松弛操作:设源点到某个节点的距离为dist[j],设与该点相邻的点的距离最小值为dist[t],两个节点之间的权值为w[i];此处我们约定整张图构成的集合为V,已经确定了最短路径的集合为S,初始时,S只有源点。
2023-05-28 10:54:39
237
原创 Acwing_算法基础_搜索与图论_树的重心
而对于一棵树的某个节点而言,删除这个节点的后的连通块就是这个节点的子树,求其最大连通块的数目的最小值就是求子树的规模的最小值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。求得删除某个节点后子树的规模和最大连通块的最小值。首先我们要知道,树是一种特殊的图,存储一棵树的的一条边a-b可以表示为a->b和b->a。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。这样就可以用我们之前存储链表的方式存储一棵树了。
2023-05-15 19:20:54
93
原创 Acwing_算法基础_搜索与图论_八数码
用哈希表存储字符串和交换次数,如果字符串从未出现过,则存入哈希表中,哈希值为其交换次数。设字符串的序号为k,则其在数组中的横坐标x=k/3,纵坐标y=k%3。第一:如何将所给予的字符串与3*3的数组联系起来?第二:什么样的字符串可以认为是一个有可能的解?
2023-05-14 19:12:00
34
原创 Acwing_算法基础_BFS_844走迷宫
//广度优先搜索是从一个根节点开始,逐层的寻找满足要求的节点,这样的寻找方式的优势是找到满足条件的第一个节点就是我们想要的最短路径的解。
2022-12-01 14:31:45
154
原创 Acwing 算法基础——BFS——842排列数字
/BFS是指深度优先搜索,它从某个节点开始一直寻找到这个点的叶子节点,之后才会回溯到这个叶子节点的上一个父节点,再从这个父节点开始搜索。
2022-11-26 21:33:38
217
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人