#P12481. [集训队互测 2024] 运筹帷幄

[集训队互测 2024] 运筹帷幄

题目描述

棋如人生,落子无悔。步步思量,方能远航。

给定一棵 nn 个结点的树,第 ii 个结点有 bib_i 个棋子,且最多能放 aia_i 个棋子。现在有一个结点 kk 是根。每次操作你可以选择一个结点,将它的一个棋子,移到它的父亲上,需要满足它父亲的棋子数没有超过限制,然后需要最小化所有棋子到 kk 的距离和。

k=1,2,,nk = 1, 2, \cdots, n 都求出答案。

输入格式

第一行包含一个正整数 nn 表示树的结点数量。

第二行包含 nn 个正整数,第 ii 个正整数表示第 ii 个结点上最多能放 aia_i 个棋子。

第三行包含 nn 个正整数,第 ii 个正整数表示第 ii 个结点上初始放了 bib_i 个棋子。

接下来 n1n-1 行,每行两个数 u,vu,v,表示树上的一条边。

输出格式

一行 nn 个整数,第 ii 个整数表示 ii 作为根时的答案。

3
6 2 10 
6 0 2 
1 2
2 3
2 6 0
5
7 6 2 1 10 
3 5 0 0 7 
1 2
2 3
1 4
4 5
10 12 20 14 9
见选手目录下的 𝚌𝚑𝚎𝚜𝚜/𝚌𝚑𝚎𝚜𝚜𝟹.𝚒𝚗。
见选手目录下的 𝚌𝚑𝚎𝚜𝚜/𝚌𝚑𝚎𝚜𝚜𝟹.𝚊𝚗𝚜。

提示

对于所有数据满足:1n5×1051\le n\le 5\times 10^50biai0 \le b_i \le a_i1ai1071\le a_i\le 10^7,为了避免答案爆 long long,将 aia_i 的范围开小了一点。

subtask 1(11 分):bi=0b_i=0

subtask 2(55 分):n2000n\le 2000

subtask 3(1111 分):n8000n\le 8000

subtask 4(33 分):链,保证 i[1,n1]Z\forall i\in [1, n-1]\cap \mathbb{Z},满足 iii+1i+1 有边;

subtask 5(33 分):菊花,保证 i[2,n]Z\forall i\in [2, n]\cap \mathbb{Z},满足 11ii 有边;

subtask 6(66 分):保证树随机;

subtask 7(1616 分):ai5a_i\le 5

subtask 8(2222 分):n5×104n\le 5\times 10^4

subtask 9(1616 分):n105n\le 10^5

subtask 10(1111 分):n2×105n\le 2\times 10^5

subtask 11(55 分):n3×105n\le 3\times 10^5

subtask 12(11 分):无。

这里说明随机树的生成方式:对于结点 i[2,n]i\in [2,n],在 [1,i1][1,i-1] 内等概率随机一个点 pp,将 i,pi,p 连一条边。

bonus

感谢 @_LHF_ 同学将本题的空间复杂度优化到了 O(n)O(n),加强版链接:https://www.luogu.com.cn/problem/P11690