【学习笔记】最短路 +生成树
困难的题目
Opening Portals
好题!
我们称传送门为关键点。
设任意两个关键点之间距离为 dist(i,j) ,考虑到传送的性质,只需求出一个连接所有关键点的生成树,然后从任意一个关键点出发遍历,恰好为生成树的边权和。(有点绕)
如果我们以每个关键点为起点跑 dijkstra , 时间复杂度为 O ( n 2 log n ) O(n^2\log n) O(n2logn) 。
对于这个模型,我们有一个 多源最短路 算法 :
- 以每个关键点为起点,求出到每个点的最短距离
- 考虑枚举一条边 (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 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」