#P5344. 【XR-1】逛森林

    ID: 4267 远端评测题 3000ms 500MiB 尝试: 0 已通过: 0 难度: 8 上传者: 标签>倍增洛谷原创O2优化最短路最近公共祖先,LCAst表,稀疏表

【XR-1】逛森林

Description

给你 nn 个节点的森林,初始没有边。

mm 个操作,分为两种:

1 u1 v1 u2 v2 w1\ u_1\ v_1\ u_2\ v_2\ w:表示构建一个单向传送门,从 u1v1u_1 \rightarrow v_1 简单路径上的所有节点,可以花费 ww 的代价,到达 u2v2u_2 \rightarrow v_2 简单路径上的所有节点。若 u1u_1v1v_1u2u_2v2v_2 不连通(由 22 操作产生的边不连通),则忽略此次操作。

2 u v w2\ u\ v\ w:表示将 uuvv 节点间连一条花费为 ww 的无向边,若 uuvv 之间已连通(由 22 操作产生的边连通)则忽略此次操作。

经过这 mm 次操作后,请你求出从 ss 节点出发,到每个节点的最小花费。

Input Format

第一行三个正整数 n,m,sn, m, s,分别表示树的节点数、操作数、和起始节点。

接下来 mm 行,每行若干个正整数,表示一次操作。

Output Format

输出一行 nn 个整数,第 ii 个整数表示从 ss 节点出发,到 ii 节点的最小花费。特别地,若不能到达ii节点,则输出 -1

9 11 5
2 2 1 2
2 3 1 5
2 4 2 10
2 5 3 9
2 6 5 3
2 7 6 6
2 8 7 2
2 9 4 2
1 1 1 4 9 2
1 8 5 1 6 1
1 3 6 9 6 1
1 1 1 1 0 1 7 9 1

Hint

【样例说明】

这是样例中给出的树(严格来讲,这棵树也是一条链):

有三个传送门,其中两个是这样的:

  • 11 号点可以花费 22 的代价到达 494 \rightarrow 9 简单路径上的所有节点(即 4,94, 9 号点)。
  • 858 \rightarrow 5 简单路径上的所有节点(即 8,7,6,58, 7, 6, 5 号点)可以花费 11 的代价到达 161 \rightarrow 6 简单路径上的所有节点(即 1,3,5,61, 3, 5, 6 号点)。

容易看出从 55 号节点出发,到达其它节点的最小花费分别为:1,1,1,1,0,1,7,9,11, 1, 1, 1, 0, 1, 7, 9, 1

【数据规模与约定】

对于第 1,21, 2 个测试点,1n1001 \le n \le 1001m3001 \le m \le 300

对于第 3,43, 4 个测试点,1n10001 \le n \le 10001m30001 \le m \le 3000

对于 100%100\% 的数据,1n500001\le n \le 500001m1061\le m \le 10^61u,vn1\le u,v \le n1w1001\le w \le 100

对于第 11 ~ 1010 个测试点,每个 55 分。

对于第 11,1211, 12 个测试点,每个 2525 分。