#P12563. [UTS 2024] Remove Node

    ID: 12415 远端评测题 2500ms 1024MiB 尝试: 0 已通过: 0 难度: 8 上传者: 标签>线段树树状数组2024UOI(乌克兰)

[UTS 2024] Remove Node

Description

给定一棵包含 nn 个顶点的有根树,每个顶点 xx 被赋予一个权值 axa_x。树的根节点为 11 号节点。

你可以执行以下操作:将两个相邻节点 xxyy 合并为一个新节点 zzzz 的权值为这两个节点权值的最小值。该操作会将原本与 xxyy 相连的边改为与 zz 相连。操作的成本为 axay|a_x - a_y|,多次操作的总成本为各次操作成本之和。

你需要处理两种查询:

  1. 1 x y1\ x\ y:将节点 xx 的权值更新为 yy
  2. 2 x2\ x:询问将以 xx 为根的子树通过操作合并为单个节点的最小总成本。

Input Format

第一行包含一个整数 nn (1n200000)(1 \le n \le 200\,000),表示节点数量。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n (1ai109)(1 \le a_i \le 10^9),表示各节点的初始权值。

第三行包含 n1n-1 个整数 p2,p3,,pnp_2, p_3, \dots, p_n (1pin1 \leq p_i \leq n),其中 pip_i 表示节点 ii 的父节点。

第四行包含一个整数 qq (1q200000)(1 \le q \le 200\,000),表示查询总数。

接下来 qq 行,每行一个查询:

  • 1 x y1\ x\ y (1xn1 \leq x \leq n, 1y1091\leq y \leq 10^9);
  • 2 x2\ x (1xn1\leq x \leq n)。

Output Format

对于每个类型为 22 的查询,按输入顺序输出一行,表示对应查询的结果。

7
4 7 9 7 4 1 2
1 1 3 2 3 2
1
2 1
11
7
6 6 5 1 6 6 4
1 1 2 3 3 3
3
2 1
1 1 1
2 1
7
11

Hint

  • 44 分):n1000n \le 1000q=1q=1
  • 1313 分):q=1q=1
  • 1515 分):树为链状且仅包含第二类查询;
  • 2424 分):仅包含第二类查询;
  • 1212 分):pi=1p_i=1(所有非根节点的父节点均为根节点);
  • 3232 分):无额外限制。

翻译由 DeepSeek V3 完成