平凉市网站建设_网站建设公司_Windows Server_seo优化
2025/12/18 16:04:28 网站建设 项目流程

人话就是求最小生成不是树。

首先肯定按照边权排序,想着像之前求最小生成树那么搞,但是你并非很好判断我到底要跳过哪条边,所以我们一开始就先选前 \(n - 1\) 小的 \(n - 1\) 条。

这个时候如果不是树就 out 了,接下来讨论是树的情况。

此时问题需要简化为你要在目前这棵树上删除一些边再加入一些边,使得目前这个结构不连通。

首先如果只删除一条边是很好办的,就是求两边连通块内非树边最小值即可,可以用简单的 DS 维护。

但事实是,我们无法将所有情况规约至这一种情况,删除很多条边的情况是可以出现的,随便给你跑几个环就炸了。

感觉这个像 np 的做不了,但事实上,可以规约至删除边数为 \(2\) 的情况,这一点还是比较好想的,因为删除大于 \(3\) 条边,必然会组合成一个合法的两条边状态。但是此时仍然做不了,这个问题仍然是 \(O(n^2)\) 的。

问题的关键在于!分析答案的下界,也就是说,当我删除一条边取不到最优解的时候,我的答案形式应该是什么样子,可以说明,此时删除第 \(n - 2, n - 1\) 小的边,加入第 \(n, n + 1\) 小的边总是可以构成一种合法的方案,如果构成不了,那么一定存在一种比它更优的只删除一条边的方案,显然删除两条边的方案都不可能比这个更优。于是我们通过了此题。

当题目不是很可做的时候可以分拆一下问题,在某些限制条件下分析答案形式和下界。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询