CF622E Ants in leaves 题解

传送门

给定一棵 n 个节点的树,根节点是 1。这棵树的每一个叶节点都有一只小蚂蚁。每过 1 秒钟,可以选择让一些蚂蚁向父节点走一步。注意,两只蚂蚁不能同时在一个除去根节点的节点上。

问这些蚂蚁最少用多少秒的时间,使得所有蚂蚁都走到根节点。


根结点的各个子树独立,因此可以各个子树各自求答案然后取 max

先深搜一遍求深度。对于一颗子树,把所有叶子的深度 d 存进一个数组 a 里,从小到大排序。

考虑深度为 ai 的这只蚂蚁。

  1. ai>ai1,显然前面的蚂蚁都会走在它严格的前面,因此它不会受到任何阻挡,到达根的时间就是 ai

  2. 否则,它会与 ai1 这只蚂蚁在某个结点处相遇,它需要等 ai1 过去,时间 +1;加了之后,也不会有任何阻挡,到达时间为 ai+1

这样把 a 依次调整一遍,最大值就是这颗子树的完工时间。

posted @   FLY_lai  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示