问题 6119 --树的链接

6119: 树的链接

题目描述

给定一张 $n$ 个点,若干条带权无向边的图。初始时,没有任何一条边存在。 ​你需要按序完成给定的 $q$ 个操作,每个操作为以下两种操作类型之一: + `x y` 表示询问操作,询问点 $x$ 与 点$y$ 之间的最短路径长度;如果两点之间不存在任何路径,则输出`-1`。 + `x y w` 表示链接操作,即在点 $x$ 与 点$y$ 之间新建一条长度为 $w$ 的边。

输入

输入的第一行包含两个正整数 $n, q$。 接下来 $q$ 行,每行输入两个或者三个正整数,形如 $x$ $y$ 或 $x$ $y$ $w$,表示一个操作,相邻的两个数之间用一个空格隔开。

输出

对于每个询问操作,你需要输出一行,一个整数,表示这次询问的答案。

样例输入输出

输入#1 复制
4 7
1 3
1 3 100
2 3 200
1 3
1 2
2 3
1 4
输出#1 复制
-1
100
300
200
-1

提示

+ 对于 $30\%$ 的数据, $1 \leq n, q \leq 30$。 + 对于 $60\%$ 的数据,$1 \leq n, q \leq 3,000$。 + 对于 $100\%$ 的数据, 保证 $1 \leq n,q \leq 300,000$ , $1 \leq w \leq 10^3$。 数据保证,在任何链接操作之前,所链接的两个点 $x$ 与 $y$ 之间不存在任何路径。 样例1说明:操作2、3为链接操作,操作1、4、5、6、7为询问操作。 其中1、7操作在询问时没有连通,故答案为 -1
序号 标题 作者 发表时间 费用 订购数 操作