AT2293-[AGC009D] Uninity【贪心,状压】
1|0正题
题目链接:https://www.luogu.com.cn/problem/AT2293
1|1题目大意
给出一棵树,求它一棵点分树的最小深度。
1|2解题思路
点分树的做法是直接找重心,但是两个重心我们很难确定找哪个,所以这个方法行不通。
但是这样我们大概能确定答案的上界是级别的。考虑我们记每个点的点分子树深度,那么肯定满足对于一对深度相同的,它们的路径上肯定存在一个点满足。
那么同样的,如果我们得到一个满足这个条件的数组,我们也能构造出一棵合法的点分树,所以我们的目的就是要最小化的值。
考虑一个构造方法,对于一个节点的深度,首先如果它的儿子中有深度为的点那么显然不合法,如果存在一个在它不同子树中的节点的深度,并且路径上节点深度都不超过,那么显然也不合法。
显然上面这两个条件我们可以用状压搞定。
但是这样构造为什么是合法的呢?我也不知道,只能感性证明一下。能发现我们的操作中如果一个节点选择了深度,那么它往上的限制中所有深度的限制都会被打开,也就是说实际上选择更大的深度并不会放松后面的限制,所以选最小的更优。
时间复杂度:
1|3code
__EOF__

本文作者:QuantAsk
本文链接:https://www.cnblogs.com/QuantAsk/p/16221509.html
关于博主:退役OIer,GD划水选手
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/QuantAsk/p/16221509.html
关于博主:退役OIer,GD划水选手
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2021-05-04 P7581-「RdOI R2」路径权值【长链剖分,dp】
2021-05-04 P4922-[MtOI2018]崩坏3?非酋之战!【dp】