解题报告—Dynamite
Dynamite
给一棵树,树上有一些关键节点,要求你选
分析
最大的最小,套路式二分答案转判定。进而问题变为:
选出
进一步转化为:选出
来思考解决这个问题。
引理:必定存在一种最优方案,使得所选出的点最多只有一个点与所有关键节点的距离的最大值小于
证明:考虑将
这就启发我们设
则有
这时候我们还要考虑其他子树中选择的节点是否可以解决掉这个点(这个点解决了其他都解决了),不妨设
容易得到:
初始值:
此时进行判断:
,说明所有的问题节点可以被覆盖,此时不存在待解决的关键节点,令 ,此时 是必须选择的节点,令 即可。 。此时说明这个点在本子树内无法解决,扔给父亲。(注意如果是根节点就选自己即可)。
特判根节点
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!