AT_ttpc2024_1_c Segment Tree

题目描述

给你一个无向图 $G$,它包含 $2^N + 1$ 个顶点和 $2^{N+1} - 1$ 条边。顶点的编号分别是 $0, 1, \dots, 2^N$,边的编号为 $1, 2, \dots, 2^{N+1}-1$。 图中的边分为 $N+1$ 种类型,从类型 $0$ 到类型 $N$。第 $i$ 种类型($0 \le i \le N$)的边总共有 $2^i$ 条,编号依次为 $2^i + 0, 2^i + 1, \dots, 2^i + (2^i - 1)$。编号为 $2^i + j$ 的边($0 \le j \le 2^i - 1$)连接顶点 $j \times 2^{N-i}$ 和顶点 $(j + 1) \times 2^{N-i}$,边的长度为 $C_{2^i + j}$。 例如,当 $N = 3$ 时,图 $G$ 如下图所示。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_ttpc2024_1_c/eeee648dd769ea41d1a8e76adff12eede55a57c5.png) 你需要处理 $Q$ 个查询,查询分为两种类型: - `1 j x`:将编号为 $j$ 的边的长度更新为 $x$。 - `2 s t`:询问从顶点 $s$ 到顶点 $t$ 的最短路径长度。

输入格式

输入包括以下内容。注意,顶点编号从 $0$ 开始,而边的编号从 $1$ 开始。 > $N$ $C_1$ $C_2$ $\cdots$ $C_{2^{N+1}-1}$ $Q$ $\text{query}_1$ $\text{query}_2$ $\vdots$ $\text{query}_Q$ 每个 $\text{query}_i$ 表示第 $i$ 个查询,查询有以下两种格式之一: > 1 $j$ $x$ > 2 $s$ $t$

输出格式

对于每一个 `2 s t` 类型的查询,输出一行答案,共计 $m$ 行,其中 $m$ 是 `2 s t` 查询的数量。第 $i$ 行对应第 $i$ 个 `2 s t` 查询的结果。

说明/提示

- 输入的所有数值均为整数。 - $1 \le N \le 18$ - $1 \le C_j \le 10^7$,$ (1\le j\le 2^{N+1}-1$) - $1 \le Q \le 2 \times 10^5$ - 对于 `1 j x` 类型的查询,$1 \le j \le 2^{N+1}-1$ 且 $1 \le x \le 10^7$ - 对于 `2 s t` 类型的查询,$0 \le s < t \le 2^N$ - 至少存在一个 `2 s t` 类型的查询 ### 部分得分 如果在不包含 `1 j x` 类型查询的数据集上正确解答,可以获得 $30$ 分。 **本翻译由 AI 自动生成**