07 2019 档案
摘要:BFS/DFS做法 任取树的一个点,从该点开始跑dfs/bfs,找到距离最远的一个点x,再从x开始跑bfs/dfs,找到另一个最远的点y,则x到y的距离为树的直径.第一次搜索找到的点x必定为直径的一端,则从该点开始再找最远的点就能找出直径的另一端的.
阅读全文
摘要:问题 给一个图,有k次机会可以通过一条边而不计算其权值,问从起点到终点权值和最少为多少? 思路 核心思路:动态规划.把图中的每一个点拆成k+1种状态,分别是从0....k,表示用了多少次不计边权的机会,然后从起点开始跑最短路.设dp[i][j]为起点到i点用了j次机会的最短距离,当更新到dp[i][
阅读全文
摘要:O(E)做法 当d[]数组求出来后,假设从k出发,可以通过找出满足d[j]=d[k]+cost[k][j]的边cost[k][j]来找到前趋节点j,因此通过不断寻找前趋节点就能还原出最短路. O(V)做法 设一个prev[]数组,prev[j]表示j的前趋,每次当更新最短路时就更新prev数组,全部
阅读全文

浙公网安备 33010602011771号