北极网络

不要一看到特殊点就想虚点,这道题目我们这么建模

假设我们的D已经定了,我们把边权小于等于D的全部加入,那么图就会形成一个若干个连通块

显然D越大连通块个数越少

这里当然启示我们用二分,然而也有更简单的方法

我们借鉴Kruscal的过程,当维护的森林刚好有s个树时直接停止,此时的边权ans就是答案

这里其实本质上不是求最小生成树,只是借用了一下这个过程,相当于我们一直在加入边,只不过求最小生成树的时候,Kruscal并没有把很多边算进去,而这道题目我们不妨也认为这些边加入进去了,但连通块个数并不会因此而增加,这么做只是为了方便证明

当结束时,ans显然是一个合法的方案;而ans显然也是下界,因为比ans更小的D,即使我把所有边都加入了,图上的连通块个数仍然比s多,根本没有办法通过卫星来联系

update 2024.5.23

其实我们可以定义一个最小最大边权树(学术名称叫做瓶颈生成树)

然后我们同样可以证明蓝书上的定理与推论是成立的

也就是说,最小生成树一定是最小最大边权树

所以以后求最小最大边权树就按照最小生成树求即可

但是注意最小最大边权树不一定是最小生成树

posted @   最爱丁珰  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示