Processing math: 100%

Hihocoder 1561 观光旅行(启发式合并+贪心)

题目链接 Hihocoder 1561

 

首先对原图求MST

我们发现某条边成为某两个点的关键路径的必要条件是这条边是最小生成树的树边。

所以我们求MST的同时进行启发式合并。

size小的子树合并到size大的子树当中就可以了。

接下来是处理询问。

对于一条边,如果他不是最小生成树的树边,则答案为0 0

考虑这条边的两边的所有点。

我们先在B集合中求出最大的y

然后在A集合中求出最大的小于yx

然后再在B集合中求出最小的大于xy

这样就符合了题目的这个条件:

x<y

且如果有多个满足条件的 xy,输出其中 x 最大的,如果还有多个满足条件的,输出其中 y 最小的。

时间复杂度 O(nlog2n)

  

posted @   cxhscst2  阅读(260)  评论(0编辑  收藏  举报
编辑推荐:
· .NET 依赖注入中的 Captive Dependency
· .NET Core 对象分配(Alloc)底层原理浅谈
· 聊一聊 C#异步 任务延续的三种底层玩法
· 敏捷开发:如何高效开每日站会
· 为什么 .NET8线程池 容易引发线程饥饿
阅读排行:
· 终于决定:把自己家的能源管理系统开源了!
· 外部H5唤起常用小程序链接规则整理
· C#实现 Winform 程序在系统托盘显示图标 & 开机自启动
· 了解 ASP.NET Core 中的中间件
· 详解:订单履约系统规划
点击右上角即可分享
微信分享提示