QOJ.ac

QOJ

Time Limit: 3.0 s Memory Limit: 1024 MB Total points: 100 Hackable ✓

#18261. 环形雨

Statistics

有一棵拥有 $n$ 个节点的树,每条边都有一个整数边权(不一定为正)。

现在,对于这棵树,可能会发生若干个事件。每个事件是以下两种类型之一:

  1. 某条边的边权发生改变。
  2. 一场以节点 $u$ 为中心、半径为 $k$ 的圆形雨落了下来。所有被淋湿的节点集合为 $S = \{x \mid \text{dis}(x, u) \le k\}$,其中 $\text{dis}(i, j)$ 表示树上节点 $i$ 和 $j$ 之间简单路径上的边数($\text{dis}(x, x) = 0$)。你希望从 $S$ 中选择一个连通子图,使得其总权值最大。

对于图 $G = (V, E)$ 和点集 $S \subseteq V$,如果点集 $V' \ (V' \subseteq S)$ 连同原图中两个端点都在 $V'$ 中的所有边构成一个连通子图,则该子图被称为“$S$ 的连通子图”。

连通子图的权值是其包含的所有边的权值之和。

你需要输出每个类型 2 事件的答案。

输入格式

第一行包含两个整数 $n$ 和 $q$($2 \le n \le 10^5$,$1 \le q \le 10^5$)。

接下来的 $n - 1$ 行,每行包含三个整数 $x_i, y_i, w_i$($1 \le x_i, y_i \le n$,$-10^9 \le w_i \le 10^9$,$x_i \neq y_i$),表示树的一条边及其初始权值。输入中的第 $i$ 条边编号为 $i$。

接下来的 $q$ 行格式如下:

  • 首先是一个整数 $\text{typ}_i$($\text{typ}_i \in \{1, 2\}$),表示事件的类型。
  • 如果 $\text{typ}_i = 1$,则接下来有两个整数 $\text{id}_i$ 和 $v_i$($1 \le \text{id}_i \le n-1$,$-10^9 \le v_i \le 10^9$),表示将第 $\text{id}_i$ 条边的权值修改为 $v_i$。
  • 如果 $\text{typ}_i = 2$,则接下来有两个整数 $u_i$ 和 $k_i$($1 \le u_i \le n$,$1 \le k_i \le n$),表示查询的参数。

输出格式

对于每个 $\text{typ}_i = 2$ 的事件,输出一行包含一个整数,即对应查询的答案。

样例

输入样例 1

8 6
1 2 7
1 3 -5
2 4 2
2 5 -100
2 6 -3
5 7 5
6 8 8
2 1 1
2 2 8
1 4 -4
2 7 3
1 6 3
2 7 3

输出样例 1

7
14
10
9

说明

在样例中,初始的树如下图所示:

  • 对于第 1 个事件,我们选择点集 $V' = \{1, 2\}$,其权值为 $7$。
  • 对于第 2 个事件,我们选择点集 $V' = \{1, 2, 4, 6, 8\}$,其权值为 $2 + 7 + (-3) + 8 = 14$。
  • 对于第 3 个事件,我们将边 $(2, 5)$ 的权值修改为 $-4$。
  • 对于第 4 个事件,我们选择点集 $V' = \{1, 2, 4, 5, 7\}$,其权值为 $2 + 7 + (-4) + 5 = 10$。
  • 对于第 5 个事件,我们将边 $(5, 7)$ 的权值修改为 $3$。
  • 对于第 6 个事件,我们选择点集 $V' = \{1, 2, 4\}$,其权值为 $2 + 7 = 9$。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.