[Ynoi2008] rdCcot
先考虑
再考虑链的情况,我们将统计方式定为统计连通块深度最小的,那么点
而一般情况中条件并没有刚刚的那么清晰了,因为连通块变成了没啥性质的图,那么看起来就不可做了啊,开摆。大胆猜想,我们可不可以对于一般情况也能像链那样把树拍在一个序列中对于每个点算贡献呢?算贡献方式即算每个连通块在序列中最前面的点。一般图中找一个特殊点出来统计是很难的,我们需要序列存在一个等价关系,即对于任意的
那么有了这个性质就可以证明按 bfs 序排列的序列可以满足等价条件了,这也是好证的。
那么我们就可以像链一样求出区间然后扫描线了。但是怎么求这个区间呢?可以考虑点分治并且用以标号排序的平衡树求前驱后继,并维护子树的最小深度就可以在平衡树上二分了。时间复杂度
这题有些轻微卡常,我们可以在二分时用循环实现递归,并且点分治分治到只有一个点的时候直接 return
,而且若一个点本身的深度就已经大于
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?