#P17256. [2025年南开中学集训]歌之丝

[2025年南开中学集训]歌之丝

题目描述

这里是形式化题意:

给定一棵 nn 个点的树,和两个长为 nn 的数组,数组 cntcnt 和 数组 AA。规定 dis(u,v)\text{dis(u,v)} 指的是树上点 uu 到点 vv 的简单路径中包含的点数。

你的任务是在点之间连一些线(不是树边),并满足如下限制:

  • 每条线只能连接两个点,点 uu 不能连向自己。
  • 两个点之间可以连接多条线。
  • 与点 uu 相连的线的条数不能超过 cntucnt_u

你连接的线并不会影响树本身的形态,即不会影响 dis(u,v)\text{dis}(u,v)

若你在 (u,v)(u,v) 间连接了一条线,那么你将得到 (1)dis(u,v)AuAv(-1)^{\text{dis}(u,v)} A_uA_v 的得分。

现在,你想要知道你可能的最大得分是多少。

题目背景

They see your beauty, so frail and fine, They see your peace, woven of faith and toil, They forget your heart, bound in slumber and servitude, When you wake they shall see your truth, A beast's nature bare to all.

geven 是 Hollow Knight 老玩家了。最近 SilkSong 发售了,但是作为 Mac 用户的他却玩不到。念丝心切的他想出了一个好主意:自己写一个 SongSilk 自己玩。

在这个游戏中,有 nn 个 Boss 场景和 n1n-1 个长椅。每个长椅两端各有⼀道传送⻔,分别可以传送到两个不同的 Boss 场景。在地图中,任意两个 Boss 场景之间可以互相到达,即所有 Boss 场景构成了⼀棵以 11 为根的树。geven 认为 dis(u,v)\text{dis(u,v)} 是 Boss 场景 uu 到 Boss 场景 vv 的简单路径上经过的 Boss 场景数(包含 uuvv)。

geven 是 Hollow Knight 老玩家了,他早就已经无伤打败了所有 Hollow Knight Boss。然而,他不熟悉 SilkSong 的机制,保险起见,他决定在 Boss 场景间连接一些**「丝线」**,以此来降低游戏难度。

具体地,他可以连接无数条**「丝线」,每条「丝线」必须连接两个不同的 Boss 场景。但是,第 ii 个 Boss 场景最多只能连接 cnticnt_i「丝线」**。

geven 对第 ii 个 Boss 场景有着 AiA_i 的初始熟悉度。当他连接了一条连接 (u,v)(u,v) 的**「丝线」**,那么他将会额外获得 (1)dis(u,v)AuAv(-1)^{\text{dis(u,v)}}A_uA_v 的熟悉度。

现在,他想知道,通过连接**「丝线」,他能额外**得到的最大熟悉度是多少。如果你正确回答了他的问题,他就会请你吃 10001000 串淄博烧烤,让你感受到山东人的热情好客。

七钟响时运送;

三十节又四奏烟岩,

及八奏甜熔渣。

不知所云。

输入格式

第一行一个整数 nn,代表树上点的数量。

第二行 nn 个整数,代表 cntcnt 数组。

第三行 nn 个整数,代表 AA 数组。

第四行至第 n+2n+2 行,每行两个整数 ui,viu_i,v_i。其中第 i+3i+3 行的输入代表树上存在一条边连接点 uiu_i 与点 viv_i

输出格式

一行一个整数,代表可能的最大得分。

输入输出样例

样例输入 #1

5
1 1 1 1 1
3 -5 -2 -3 0
1 2
1 3
2 4
2 5

样例输出 #1

15

样例输入 #2

10
3 1 4 1 5 9 2 6 5 3
1 -1 4 -5 1 -4 1 -9 1 -9
1 2
1 3
1 9
2 4
2 6
3 5
3 7
3 8
8 10

样例输出 #2

303

数据范围

本题开启子任务评测。

所有测试点均满足 1n106 1\leq n \leq 10^6 0cnti106 0 \leq cnt_i \leq 10^6 Ai106 |A_i| \leq 10^6 。保证给出的边构成一棵树。

各子任务的约束条件如下:

子任务编号 分值 限制
11 1010 cnti15\sum\limits cnt_i \leq 15
22 1515 Ai0A_i \geq 0
33 3030 1n5×1031\leq n \leq 5 \times 10^3
44 4545 1n106 1\leq n \leq 10^6 0cnti106 0 \leq cnt_i \leq 10^6 ,$