Logo Universal Online Judge

UOJ

时间限制:3 s 空间限制:1024 MB
统计

greedy

3s, 1024MiB

题目描述

给定一棵 $n$ 个节点带边权的有根树, 根节点为 $1$。

定义:

  • $dis(u,v)$ 表示 $u$ 到 $v$ 的路径上的边权和($u=v$ 则为 $0$)。
  • $sub(u)$ 表示 $u$ 子树内的点所成的集合。

你需要执行以下三种操作 $q$ 次:

  • 1 u v 将树链 $u,v$ 上的边权变为原本的相反数($u=v$ 则不操作)。

  • 2 x u 询问 $\min_{v\in sub(x)} dis(u,v)$。

  • 3 x y 询问 $\min_{u\in sub(x)}\min_{v\in sub(y)}dis(u,v)$。

输入格式

第一行两个整数 $n,q$。

接下来 $n-1$ 行, 第 $i$ 行两个整数 $f_i,w_i$, 表示 $i$ 的父亲以及其到父亲的边的长度。

接下来 $q$ 行,每行三个整数代表一次操作。 保证至少有一次 $2$ 或 $3$ 操作。

输出格式

对于每个 $2$ 或 $3$ 操作, 输出一行一个整数表示答案。

【样例 1】

【样例 1 输入】

3 3
1 114
1 514
2 1 2
1 1 3
2 1 2

【样例 1 输出】

0
-400

数据范围

对于 $100\%$ 的数据, 满足 $1\leq n,q\leq 2\times 10^5,1\leq f_i< i,-10^9\leq w_i\leq 10^9$。

测试点编号 $n,q\leq$ $f_i=i-1$
$1,2$ $100$
$3\sim 5$ $3000$
$6,7$ $10^5$
$8,9$ $10^5$
$10\sim 12$ $10^5$
$13\sim 15$ $10^5$
$16,17$ $2\times 10^5$
$18\sim 20$ $2\times 10^5$

其中:

  • $6,8$ 测试点只有 $2$ 操作。
  • $7,9$ 测试点只有 $3$ 操作。
  • $10,13$ 测试点没有 $1$ 操作。
  • $11,14$ 测试点没有 $2$ 操作。
  • $3,12,15$ 测试点没有 $3$ 操作。

样例