AT_tkppc2016_j 次のお仕事 (New Game)

题目描述

joisino 姐姐完成了一个游戏后,决定开始策划下一个游戏。这次,她打算设计一个地形会变化的冒险游戏。游戏中有以下设定: 在这个游戏中,有 $N$ 个城镇,通过 $N-1$ 条双向道路相互连接,形成了一个连通的地图。玩家需要在这些城镇间旅行以到达目标。不过,你只需要考虑最短路径。由于地形的变化,海拔成为了一个重要因素。穿越高海拔的城镇可能会获得稀有物品,因此找出旅途中经过城镇的最高海拔是至关重要的。此外,可以通过改变化拔来改变特定区域的地形。 具体来说,游戏中会发生以下两种事件: - **事件 1** 给定整数 $a, b, c$。将从城镇 $a$ 出发,沿不超过 $b$ 条边能到达的所有城镇的海拔统一设为 $c$。 - **事件 2** 给定整数 $a, b$。计算出从城镇 $a$ 到达城镇 $b$ 的最短路径上的城镇中最高的海拔,根据最高海拔领取相应的奖励。 这样做可以获得哪些物品呢?为了探求这个问题,joisino 姐姐决定编写一个程序,专门用来求出在事件 2 中,最短路径上城镇海拔的最大值。 ### 输入格式 输入无特殊格式要求。 ### 输出格式 对于每一次事件 2,输出从城镇 $a$ 到城镇 $b$ 的最短路径上,所有经过城镇中的最大海拔值。 ### 输入示例 1 ``` 5 5 3 2 5 2 6 1 2 2 3 3 5 3 4 2 1 5 0 1 4 1 7 2 5 2 0 1 3 1 2 2 4 1 0 ``` ### 输出示例 1 ``` 6 7 3 ``` - **查询 1**:从城镇 $1$ 到达城镇 $5$ 的最短路径是 $1 \to 2 \to 3 \to 5$,经过城镇海拔分别为 $3,\ 2,\ 5,\ 6$,最大值为 $6$。 - **查询 2**:将从城镇 $4$ 出发,沿一条边能够到达的城镇 $4$ 和 $3$ 的海拔设为 $7$。 - **查询 3**:从城镇 $5$ 到城镇 $2$ 的最短路径是 $5 \to 3 \to 2$,经过城镇海拔分别为 $6,\ 7,\ 2$,最大值为 $7$。 - **查询 4**:将从城镇 $3$ 出发,沿一条边能够到达的城镇 $3,\ 2,\ 4,\ 5$ 的海拔设为 $2$。 - **查询 5**:从城镇 $4$ 到城镇 $1$ 的最短路径是 $4 \to 3 \to 2 \to 1$,经过城镇海拔分别为 $2,\ 2,\ 2,\ 3$,最大值为 $3$。 ### 输入示例 2 ``` 10 10 78 87 33 57 93 49 45 17 56 44 1 2 2 3 1 4 1 5 4 6 3 7 6 8 3 9 6 10 2 2 2 0 1 1 2 59 1 7 1 96 2 7 8 0 2 3 4 0 2 10 4 0 1 8 2 45 1 3 3 24 2 2 1 0 2 6 9 0 ``` ### 输出示例 2 ``` 87 96 96 59 24 45 ``` 该问题测试在城镇连接形成的树结构内处理路径查询与更新问题,是对图算法的应用与挑战。 **本翻译由 AI 自动生成**

输入格式

输出格式

すべてのイベント2について、最短経路の街の標高の最大値を出力せよ。 - - - - - - ### 入力例1 ``` 5 5 3 2 5 2 6 1 2 2 3 3 5 3 4 2 1 5 0 1 4 1 7 2 5 2 0 1 3 1 2 2 4 1 0 ``` ### 出力例1 ``` 6 7 3 ``` - クエリ$ 1 $ : 街$ 1 $から街$ 5 $までの最短経路で通る街は$ 1,\ 2,\ 3,\ 5 $なので、それらの標高$ 3,\ 2,\ 5,\ 6 $の最大値$ 6 $を出力する。 - クエリ$ 2 $ : 街$ 4 $から$ 1 $本の道を通ってたどり着ける街は$ 4,\ 3 $なので、それらの標高を$ 7 $にする。 - クエリ$ 3 $ : 街$ 5 $から街$ 2 $までの最短経路で通る街は$ 5,\ 3,\ 2 $なので、それらの標高$ 6,\ 7,\ 2 $の最大値$ 7 $を出力する。 - クエリ$ 4 $ : 街$ 3 $から$ 1 $本の道を通ってたどり着ける街は$ 3,\ 2,\ 4,\ 5 $なので、それらの標高を$ 2 $にする。 - クエリ$ 5 $ : 街$ 4 $から街$ 1 $までの最短経路で通る街は$ 4,\ 3,\ 2,\ 1 $なので、それらの標高$ 2,\ 2,\ 2,\ 3 $の最大値$ 3 $を出力する。 - - - - - - ### 入力例2 ``` 10 10 78 87 33 57 93 49 45 17 56 44 1 2 2 3 1 4 1 5 4 6 3 7 6 8 3 9 6 10 2 2 2 0 1 1 2 59 1 7 1 96 2 7 8 0 2 3 4 0 2 10 4 0 1 8 2 45 1 3 3 24 2 2 1 0 2 6 9 0 ``` ### 出力例2 ``` 87 96 96 59 24 45 ```