#P2934. [USACO09JAN] Safe Travel G

    ID: 1980 Type: RemoteJudge 1000ms 125MiB Tried: 0 Accepted: 0 Difficulty: 6 Uploaded By: Tags>2009USACO并查集最短路最近公共祖先,LCA

[USACO09JAN] Safe Travel G

题目描述

Gremlins have infested the farm. These nasty, ugly fairy-like

creatures thwart the cows as each one walks from the barn (conveniently located at pasture_1) to the other fields, with cow_i traveling to from pasture_1 to pasture_i. Each gremlin is personalized and knows the quickest path that cow_i normally takes to pasture_i. Gremlin_i waits for cow_i in the middle of the final cowpath of the quickest route to pasture_i, hoping to harass cow_i.

Each of the cows, of course, wishes not to be harassed and thus chooses an at least slightly different route from pasture_1 (the barn) to pasture_i.

Compute the best time to traverse each of these new not-quite-quickest routes that enable each cow_i that avoid gremlin_i who is located on the final cowpath of the quickest route from pasture_1 to

pasture_i.

As usual, the M (2 <= M <= 200,000) cowpaths conveniently numbered 1..M are bidirectional and enable travel to all N (3 <= N <= 100,000) pastures conveniently numbered 1..N. Cowpath i connects pastures a_i (1 <= a_i <= N) and b_i (1 <= b_i <= N) and requires t_i (1 <= t_i <= 1,000) time to traverse. No two cowpaths connect the same two pastures, and no path connects a pasture to itself (a_i != b_i). Best of all, the shortest path regularly taken by cow_i from pasture_1 to pasture_i is unique in all the test data supplied to your program.

By way of example, consider these pastures, cowpaths, and [times]:

1--[2]--2-------+ 
|       |       | 
[2]     [1]     [3] 
|       |       | 
+-------3--[4]--4
TRAVEL     BEST ROUTE   BEST TIME   LAST PATH 
p_1 to p_2       1->2          2         1->2 
p_1 to p_3       1->3          2         1->3 
p_1 to p_4      1->2->4        5         2->4 

When gremlins are present:

TRAVEL     BEST ROUTE   BEST TIME    AVOID 
p_1 to p_2     1->3->2         3         1->2 
p_1 to p_3     1->2->3         3         1->3 
p_1 to p_4     1->3->4         6         2->4 

For 20% of the test data, N <= 200.

For 50% of the test data, N <= 3000.

TIME LIMIT: 3 Seconds

MEMORY LIMIT: 64 MB

输入格式

* Line 1: Two space-separated integers: N and M

* Lines 2..M+1: Three space-separated integers: a_i, b_i, and t_i

输出格式

* Lines 1..N-1: Line i contains the smallest time required to travel from pasture_1 to pasture_i+1 while avoiding the final cowpath of the shortest path from pasture_1 to pasture_i+1. If no such path exists from pasture_1 to pasture_i+1, output -1 alone on the line.

题目大意

【题目描述】

给定一张有 nn 个节点,mm 条边的无向图,对于任意的 ii2in2\le i\le n),请求出在不经过原来 11 节点到 ii 节点最短路上最后一条边的前提下,11 节点到 ii 节点的最短路。

特别地,保证 11 到任何一个点 ii 的最短路都是唯一的。

保证图中没有重边和自环。

【输入格式】

第一行,两个整数 n,mn,m

之后 mm 行,每行三个整数 ai,bi,tia_i,b_i,t_i 表示有一条 aia_ibib_i,边权为 tit_i 的无向边。

【输出格式】

n1n-1 行,第 ii 行表示 11i+1i+1 在不经过原来 11 节点到 i+1i+1 节点最短路上最后一条边的前提下的最短路。如果最短路不存在,则在对应行输出 -1

翻译贡献者:

/user/282751

4 5 
1 2 2 
1 3 2 
3 4 4 
3 2 1 
2 4 3 

3 
3 
6 

提示

感谢 karlven 提供翻译。