#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 个棋子。

接下来 n−1n-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
见选手目录下的 𝚌𝚑𝚎𝚜𝚜/𝚌𝚑𝚎𝚜𝚜𝟹.𝚒𝚗。
见选手目录下的 𝚌𝚑𝚎𝚜𝚜/𝚌𝚑𝚎𝚜𝚜𝟹.𝚊𝚗𝚜。

提示

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

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

subtask 2(55 分):n≤2000n\le 2000;

subtask 3(1111 分):n≤8000n\le 8000;

subtask 4(33 分):链,保证 ∀i∈[1,n−1]∩Z\forall i\in [1, n-1]\cap \mathbb{Z},满足 ii 和 i+1i+1 有边;

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

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

subtask 7(1616 分):ai≤5a_i\le 5;

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

subtask 9(1616 分):n≤105n\le 10^5;

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

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

subtask 12(11 分):无。

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

bonus

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