hihoCoder Challenge 3
#1065 : 全图传送
时间限制:30000ms
单点时限:3000ms
内存限制:256MB
描述
先知法里奥是 Dota 系列中的一个英雄。机动性强,推塔能力一流,打钱速度快,传送技能使先知可以全地图支援。在后期比拼中通过强大的兵线控制能力使得对方的兵线一直难以过河,并具有一定的后期 DPS 能力。
我们今天要考虑的是传送技能。假设战场是一个树形区域,每个节点有一个权值 vi。当你传送到某个点 u 时,可以支援距离点 u 半径 r 以内的所有节点。请对于下列询问"u r", 回答以 u 节点为中心,半径 r 以内的节点中,权值最大的节点的编号是多少。如果有多个节点,返回编号最小的。
输入
第一行包含一个整数 n (1 ≤ n ≤ 105),表示节点总数。
接下来的一行,包含 n 个数字,表示每个节点的权值 vi (1 ≤ vi ≤ 109)。 接下来的 n-1 行,每行三个整数 (ai, bi, wi),表示一条连接 ai, bi 节点的边,边长为 wi(1 ≤ ai, bi ≤ n, 1 ≤ wi ≤ 104)。
接下来的一行包含一个整数 q,表示询问总数(1 ≤ q ≤ 105)。 接下来 q 行,每行包含两个整数 u, r(1 ≤ u ≤ n, 0 ≤ r ≤ 109),表示询问以 u 节点为中心,半径 r 以内的节点中,权值最大的节点的编号是多少。如果有多解返回编号最小的。
输出
对于每组询问,输出一行表示对应答案。
- 样例输入
-
7 1 2 3 4 5 6 7 1 2 1 2 3 1 2 4 1 1 5 1 5 6 1 5 7 1 4 1 1 1 2 2 1 2 2
- 样例输出
-
5 7 4 5
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/4842254.html
未经授权禁止转载,违者必究!