#P12481. [集训队互测 2024] 运筹帷幄
[集训队互测 2024] 运筹帷幄
题目描述
棋如人生,落子无悔。步步思量,方能远航。
给定一棵 个结点的树,第 个结点有 个棋子,且最多能放 个棋子。现在有一个结点 是根。每次操作你可以选择一个结点,将它的一个棋子,移到它的父亲上,需要满足它父亲的棋子数没有超过限制,然后需要最小化所有棋子到 的距离和。
对 都求出答案。
输入格式
第一行包含一个正整数 表示树的结点数量。
第二行包含 个正整数,第 个正整数表示第 个结点上最多能放 个棋子。
第三行包含 个正整数,第 个正整数表示第 个结点上初始放了 个棋子。
接下来 行,每行两个数 ,表示树上的一条边。
输出格式
一行 个整数,第 个整数表示 作为根时的答案。
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
见选手目录下的 𝚌𝚑𝚎𝚜𝚜/𝚌𝚑𝚎𝚜𝚜𝟹.𝚒𝚗。
见选手目录下的 𝚌𝚑𝚎𝚜𝚜/𝚌𝚑𝚎𝚜𝚜𝟹.𝚊𝚗𝚜。
提示
对于所有数据满足:,,,为了避免答案爆 long long
,将 的范围开小了一点。
subtask 1( 分):;
subtask 2( 分):;
subtask 3( 分):;
subtask 4( 分):链,保证 ,满足 和 有边;
subtask 5( 分):菊花,保证 ,满足 和 有边;
subtask 6( 分):保证树随机;
subtask 7( 分):;
subtask 8( 分):;
subtask 9( 分):;
subtask 10( 分):;
subtask 11( 分):;
subtask 12( 分):无。
这里说明随机树的生成方式:对于结点 ,在 内等概率随机一个点 ,将 连一条边。
bonus
感谢 @_LHF_ 同学将本题的空间复杂度优化到了 ,加强版链接:https://www.luogu.com.cn/problem/P11690。