1 条题解
-
0
自动搬运
来自洛谷,原作者为

Sol1
博客:sol1.netlify.app搬运于
2025-08-24 22:44:11,当前版本为作者最后更新于2023-01-24 21:14:23,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
算法 4
使用启发式合并快速计算,对每一个点维护所有子树内的点当前的答案。
然后每次合并,小的子树全部 (暴力),大的子树部分 (暴力)部分整体加(打 tag),set 暴力实现为 ,期望得分 33。
算法 5
(感谢 E_Space 神仙!)
回到算法 3,考虑直接优化这个递推过程。
注意到,对于 ,如果 的另一个子树(设为 )满了,且 的另一个子树(设为 )的大小小于 子树大小的两倍,则 一定满了。于是我们可以把 和 缩起来。
具体来说,我们维护一棵辅助树 (记原树为 ),树上每一个点有一个二元组 ,代表触发这个点的另一个子树填满至少需要 的大小,触发以后填满的所有子树大小总和为 ,将它向上第一个无法触发填满的点设为它在 上的父亲。
计算答案时,如果不能触发,则加倍,在 上向上跳;否则在 上向上跳。考虑到每在 上跳一次答案加倍,每在 上跳一次所在子树大小加倍,于是总复杂度 ,期望得分 100。
- 1
信息
- ID
- 8297
- 时间
- 1500ms
- 内存
- 512MiB
- 难度
- 6
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者