CF827D Best Edge Weight 题解
-
差一点就想出来了
-
首先
构建出来的肯定是一个章鱼森林,而且手玩一下样例就会发现我们每次要找到一个大小为 的环后让里面的点重新指向,一直重复这些操作直到所有点都被找到。 -
我们考虑对于一个环,我们要如何对里面的点重定向才能让他延申出去的每个森林都可以组成一个大小为
的环 -
-
如图,我们发现可以重定向红色边来组成一个新的大小为
的环,并一直重复这样的操作,显然是合法的。 -
因此原问题就变成了判断这个章鱼森林里每个环大小是否为
。你可以使用 dfs Or tarjan 。但有一种更好的解决方式:我们通过拓扑排序把里面所有延申出去的"触手"给标记上,显然这个图就只剩若干个环了,剩下的就非常 simple 了 -
最终复杂度
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?