其他分享
首页 > 其他分享> > 题解 Luogu P2934 [USACO09JAN]Safe Travel G

题解 Luogu P2934 [USACO09JAN]Safe Travel G

作者:互联网

题意

给定 \(n\) 个点 \(m\) 条边的无向连通图,第 \(i\) 条边 \((u_i,v_i)\) 的权值为 \(t_i\),保证 \(1\) 到每个点的最短路唯一。

对于每个点 \(x\),求出从 \(1\) 出发,在不走 \(1\) 到 \(x\) 的最短路上最后一条边的情况下,\(1\) 到 \(x\) 的最短路径。

\(1 \leq n \leq 10^5, 1\leq m \leq 2 \times 10^5, 1 \leq t \leq 1000\)

题解

因为最短路唯一,所以可以建出最短路径树。

考虑一条非树边 \((u,v)\),加上它之后会形成环,其最多只可能能对环上,即路径 \(u \to \operatorname{lca}(u,v) \to v\) 上(不包含 \(\operatorname{lca}(u,v)\))所有点造成贡献。

令 \(d_i\) 表示 \(1\) 到 \(i\) 的最短路。如果边 \((u,v)\) 的权值为 \(w\) 且该边能对 \(x\) 造成贡献,那么通过边 \((u,v)\),\(1\) 到达 \(x\) 的最短路径为 \(d_u+d_v-d_x+w\)。注意到对于 \(d_x\) 只和 \(x\) 有关,\(d_u+d_v+w\) 只与边 \((u,v)\) 有关。

接下来有两个做法:

标签:pre,return,int,题解,Travel,Safe,leq,edge,const
来源: https://www.cnblogs.com/liuzongxin/p/15256816.html