本题给出了一棵包含 n 个节点的树,每个节点 i 有一个处理能力 wi。对于每一台服务器 i,若它单独宕机,则该节点以及与其相连的所有边都会被移除,原树会分裂成若干个连通分量(子网)。每个连通分量的“子网处理能力”定义为该连通分量内所有存活服务器的处理能力的最大值;整个数据中心的“总剩余处理能力”为所有子网的子网处理能力之和。我们需要对每个 i 求出仅移除 i 后的总剩余处理能力。
删除一个节点 u 后,剩余的连通分量包括:
因此,问题可以转化为:对于每个节点 u,我们需要知道以 u 为根的子树中(不删除任何节点)处理能力的最大值,以及当 u 被删除后,它“父侧”部分的处理能力最大值。前者可以通过一次自底向上的树形 DP 求出,后者可以通过第二次自顶向下的 DP 求出。具体步骤如下:
在一个由 n 台服务器构成的数据中心中,服务器之间通过网线相连,整体拓扑为一棵树。每台服务器都有自己固定的处理能力,用正整数 wi 表示。
如果某台服务器发生严重故障并宕机,那么它连同所有与它直接相连的网线都将被从网络中移除。移除后,原本的网络会分裂成若干个子网(即连通分量)。对于每一个子网,定义其“子网处理能力”为该子网中所有存活服务器的处理能力的最大值。数据中心在故障发生后的“总剩余处理能力”定义为所有子网的子网处理能力之和。
现在需要你回答:对于每一台服务器,如果它单独宕机(且只宕机这一台),数据中心的总剩余处理能力会变为多少。注意,每一次询问都是独立的,即故障不会累计发生。
输入保证服务器数量 n 满足 2≤n≤105,处理能力 wi 满足 0≤wi≤109。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册