- 博客(10)
- 收藏
- 关注
原创 洛谷【图】最短路
作为 Bellman-Ford 算法的队列优化版本,SPFA 算法通过减少无效松弛次数提升了效率。不再对所有边进行暴力枚举,而是维护一个队列,存放上一轮被成功松弛过的点。2.理论基础:在最短路存在的图中,任意两点间的最短路最多经过 N-1 条边,因此 N-1 轮松弛足以找到全局最短路。1.迭代松弛:对图中的所有边进行 N-1 轮松弛操作。在每一轮中,尝试利用所有边来更新起点到其他点的最短距离。用小根堆每次取出距离起点最近的点,通过松弛操作更新邻居的最短路径,最终求出起点到所有点的最短路。
2026-05-16 01:38:31
54
原创 洛谷U328173 【模板】树的重心,P2986 [USACO10MAR] Great Cow Gathering G
用 DFS 求出每个节点的子树大小,计算去掉该节点后最大子树的大小,若最大子树大小 ≤ 总节点数的一半,该节点就是树的重心,最后排序输出所有重心。的经典模板题,核心是先通过一次 DFS 算出1个根的总代价,再通过第二次 DFS “换根” 快速推导所有节点的代价,最终找最小值。
2026-05-16 01:02:18
27
原创 洛谷B4016 树的直径三种解法&U392706 【模板】树的中心题解
通过 DFS 遍历树,更新每个节点向下的最长和次长路径,将每个节点的最长路径与次长路径之和比较,最终得到树中最长路径即树的直径。
2026-04-18 01:57:51
66
原创 洛谷P2016 [SEERC 2000] 战略游戏题解
用树形 DP 枚举每个点选或不选,不选则子节点全选,选则子节点取最小,最后算出覆盖整棵树所有边的最少节点数。
2026-03-29 13:15:33
36
原创 洛谷P3478 [POI 2008] STA-Station题解
先用一次 dfs算出以 1 为根的深度和与子树大小,再用换根 DP (利用父节点答案推出子节点答案)算出所有节点为根的深度和,最后遍历比较输出深度和最大的节点编号。
2026-03-28 13:00:55
37
原创 洛谷P2052 [NOI2011] 道路修建题解
通过 DFS 算出每棵子树大小,累加每条边的边权 × 子树点数 × 剩余点数,求出树上所有点对路径长度总和。
2026-03-28 12:49:58
216
原创 c++无向树的后序DFS遍历模板
第一步:读取树的节点数和边信息,构建邻接表存储树的结构。,保证遍历节点时能找到所有邻接节点。第二步通过dfs函数进行遍历,并赋值。
2026-03-21 23:11:09
28
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅