hdu 2586 How far away ? (tarjan算法求LCA模板题)Apr 12, 2016·856 words·2 minsACM LCA Tarjan题目链接 题意:一棵树,给出n-1个边权,然后q组查询,每组查询询问两个点之间的距离。 思路: dfs跑出根到每个点的距离,设为dis[i] 那么u,v两点的距离就是ans = dis[u]+dis[v]-2*dis[lca(u,v)];
codeforces 567 E President and Roads (优先队列+迪杰斯特拉+tarjan)Aug 16, 2015·709 words·2 minsACM Dijkstra STL Tarjan题意是说,给定一个有向图,对于每一条边,问是否是 s 到 t 的最短路上一定会经过的边。 如果是就输出 yes。 如果不是,问能否通过减少这条边的权值(减少的权值就是修理费用),使得这条边成为新的最短路上的边。