#P1094. 【模板】带权并查集

    ID: 106 传统题 1000ms 256MiB 尝试: 0 已通过: 0难度: 普及+/提高− ← 上一题 下一题 → 随机一题 上传者: 标签 模板题 并查集 带权并查集 数据结构
显示设置

【模板】带权并查集

题目描述

有 nn 个未知整数 v1,v2,…,vnv_1,v_2,\dots,v_n,一开始它们之间没有任何已知关系。你需要处理 mm 个操作:

  • 1 x y w:告诉你 vy−vx=wv_y-v_x=w。保证这条信息与已有关系不会冲突。
  • 2 x y:询问 vy−vxv_y-v_x 的值。

输入格式

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

接下来 mm 行,每行一个操作,格式为 1 x y w 或 2 x y(1≤x,y≤n1\le x,y\le n)。

输出格式

对每个 2 操作输出一行:如果能够由已知关系推出 vy−vxv_y-v_x 的值,输出这个值;否则输出一个问号 ?。

输入输出样例 #1

输入 #1

4 8
1 1 2 5
2 1 2
1 2 3 -2
2 1 3
2 3 1
2 1 4
1 4 1 3
2 4 3

输出 #1

5
3
-3
?
6

说明

数据范围

  • 对于 100%100\% 的数据,1≤n,m≤2×1051\le n,m\le 2\times 10^5,∣w∣≤109|w|\le 10^9,答案的绝对值不超过 101410^{14}。