首页 > 其他 > 详细

[CF1051F]The Shortest Statement_堆优化dij_最短路树_倍增lca

时间:2019-11-03 15:42:06      阅读:92      评论:0      收藏:0      [点我收藏+]

The Shortest Statement

题目链接:https://codeforces.com/contest/1051/problem/F

数据范围:略。


题解

关于这个题,有一个重要的性质:$m - n \ge 20$。

这个性质乍一看没啥思路.....想到最短路树也很容易,不就是多了$20$条非树边么,有啥的。

看了题解....

哇哦~多了$20$条非树边,也就是多了$40$可能经过非树边的点。

我们把两点的路径分为两种,最短路一定在这两种路径中。

第一种是两个点在最短路树上的路径,这个可以用倍增$lca$求出来。

第二种是经过了非树边的路径,一旦经过了非树边就绝对经过了那些特殊的$40$点。所以我们对于每个特殊点,暴力跑一遍单源最短路即可,更新的时候枚举所有特殊点更新。

代码:(等CF上去了我会贴的)

[CF1051F]The Shortest Statement_堆优化dij_最短路树_倍增lca

原文:https://www.cnblogs.com/ShuraK/p/11787371.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!