题目描述
我有一张 n 个节点的无向边带权图。它的边很多,用这个方法表示:
- 有 k 个集合;第 i 个集合可以表示为 Si={(T1,W1),(T2,W2),…,(T∣Si∣,W∣Si∣)}。
- 对于任何两对 (Ti,Wi),(Tj,Wj) 在同一个集合里面,图中会形成一条连 Ti 和 Tj 的边,边权为 Wi+Wj。
请对于所有节点 i 找到 1 到 i 的最短路,即从 1 到 i 的边权和最小的简单路径。
输入格式
第一行两个正整数 n,k。
接下来描述 k 个集合。
第 i 集合的描述的第一行一个正整数 ∣Si∣,表示 ∣Si∣ 的大小。
接下来 Si 行,每行两个正整数 t,w,表示 (t,w)∈Si。
输出格式
一行 n 个正整数;第 i 个正整数表示 1 到 i 的最短路长度。如果不存在一条路径,输出 0x3f3f3f3f3f3f3f3f=4557430888798830399。
提示
对于前 10% 的数据,∣Si∣=2;
对于前 20% 的数据,∣Si∣≤10;
对于前 50% 的数据,∣N∣≤1000,∑∣Si∣≤2000;
对于 100% 的数据,1≤∣N∣≤2⋅105,∑∣Si∣≤4⋅105,0≤Wi≤109。