【学习笔记】最短路 +生成树

困难的题目

Opening Portals

好题!

我们称传送门为关键点。

设任意两个关键点之间距离为 dist(i,j) ,考虑到传送的性质,只需求出一个连接所有关键点的生成树,然后从任意一个关键点出发遍历,恰好为生成树的边权和。(有点绕)

如果我们以每个关键点为起点跑 dijkstra , 时间复杂度为 O ( n 2 log ⁡ n ) O(n^2\log n) O(n2logn)

对于这个模型,我们有一个 多源最短路 算法 :

  1. 以每个关键点为起点,求出到每个点的最短距离
  2. 考虑枚举一条边 (u,v,w) ,将距这条边两个端点最近的两个关键点连起来:(相当于枚举中转点)

请添加图片描述
正确性是显然的。

特别地,MST 就是每个点都是关键点的情况 。

当然,一条边可能会在生成树上被计算多次。

请添加图片描述

Complete the MST

这题不需要高深算法。直接莽

可以直接跑完全图 MST ,然后找次小生成树 (分讨即可) 。

Jumping Around

boruvka 板题

Trial for Chief

好精巧的小构造!

万万没想到是最短路 !

考虑从 (i,j) 出发,相邻的颜色不同的格子距离为 1 ,颜色相同的格子距离为 0 ,找到距离最远的黑色格子,答案为 dist+1 。(特判全白)

考虑它的意义。相当于黑白交替,贪心地操作。

Flights

咕咕咕。。。

差分约束 + 最短路 !!

请添加图片描述

Capitalism

妙题 !

首先判断奇环一定无解。

这题的图很特殊,因为是双向边,所以从连通块的任意一点出发都能到达其他点 。因此我们枚举 S 作为起点,跑差分约束。

请添加图片描述
很巧的地方在于不会出现有边连的 dis[u]=dis[v] 的情况,否则会出现奇环。

这样可以得到一组合法的解。

然后要满足极差最大 。

不能建超级原点 。qwq


__EOF__

本文作者仰望星空的蚂蚁
本文链接https://www.cnblogs.com/cqbzly/p/17530144.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   仰望星空的蚂蚁  阅读(17)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示