- 博客(9)
- 收藏
- 关注
原创 分层图有关问题(建图!+ Dijkstra 免费K条线的最短路问题)
把原来的图看成很多层图,k个免费的路线要构造k+1层图,从起点到终点的最短距离要看到k+1个终点的最短距离,红色的边权值为0。问题的难点在于建图,建好图之后跑一边dijkstra算法就好了,注意最后输出距离是起点到k+1个终点。
2025-04-16 16:41:07
304
原创 BFS DFS dijkstra SPFA算法的st数组
类似BFS,和BFS不同的是,这个第一次遍历不一定是最小的点,所以每次出队st要变为false,这个算法要进行多次松弛操作,st数组为true是等待着扩展的点,假如队列有a,b,c两个点,并且a,c之间是有边的,当扩展到a的时候,st[c] == 1,此时就不能通过a对c进行扩展,因为这样可能会改变dist[c],就与c入队的时候的dist[c]不同了,因为没发保证每次都是入队最短的,所以可能要操作多次对于一个点来说,所以每次出队要false,入队是true。
2025-04-11 22:13:23
174
原创 用优先队列优化的dijkstra
维护一个集合S,一开始只有起始点,每次都在图里去找离这个起点最近的点(用优先队列自动排序),找到这个点之后取遍历这个点可达的所有点看看可不可以通过这个点来更新到起点最短距离,更新完后把这个点加入到集合S(集合S里面是等待更新的点),用一个二元组来记录点到集合的距离,first是t到起点的最短距离(因为按照二元组的first排序),second是点。适用于边权不相等且都为正的图。时间复杂度是mlogn。
2025-04-02 21:18:29
435
原创 图和树的存储
用n^2和m进行比较 稠密图是边多 如果m>n^2那么就是稠密图 此时用邻接矩阵。h[2]->1->4->3 代表2这个节点可以到 1、4、3。邻接矩阵存稠密图,邻接表存稀疏图。
2025-04-02 20:16:26
128
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1