最短路径
文章平均质量分 71
Cold_Chair
我XXX就是饿死,死外边,从这里跳下去,也不会再做你九条可怜一个测试点
展开
-
双向广搜模版(360百科)
双向广搜模版转载 2016-07-11 16:54:18 · 788 阅读 · 0 评论 -
差分约束系统使用心得及dy引擎分析
差分约束系统是一个神奇的数与图结合的算法。dy引擎原创 2016-06-15 18:55:31 · 1011 阅读 · 0 评论 -
SPFA维护dp——【NOI2014模拟7.11】挖宝藏
WC 2008游览计划升级版。原创 2017-03-23 19:26:56 · 579 阅读 · 0 评论 -
NOIP2017 Day1_T3 逛公园
题目大意:让你求从1到n的路径中,长度和最短路径不超过k有多少条?Warning:CCF老爷机严重卡常。题解:考场时想到了缩环,然并卵,就是没想到拆点按Turpo序dp。70分的做法,先跑SPFA求最短路,然后再求最短路的条数,如果此时有0环,那么队列会无限大,可以超过10^6就退出,之后再强行拆点连边SPFA跑方案数。发现如果原图中没有0环的话,拆点后的图是没有环的,所以强行Turpo一发,按顺序原创 2017-11-18 15:56:40 · 1735 阅读 · 0 评论 -
A*入门两题——第k短路问题 && [SCOI2005]骑士精神
A*算法网上有很多资料,在这里不想写…最主要的是估价函数f,估的是当前状态到最终状态的代价。设f′f'为真正的代价f<f′f<f',能搜到最优解,但是复杂度不优。f=′f′f='f',能搜到最优解,且复杂度最优。f>f′f>f',有可能搜不到最优解,但是跑得快。第k短路问题:其核心在于预处理出所有点到终点的最短路h。设g为起点到这个点的长度。f = g +h按f的大小从小到大取,用堆维护。每次取出来原创 2018-03-09 20:30:27 · 373 阅读 · 0 评论 -
【gdoi2018 day2】巡逻
题目大意:每次可以封掉一个点或者开启一个点。动态的询问经过一个点x的最小环。题解:这题算什么好呢,其实一点都不难,也不知道为什么没想出来。求出x到每个点的最短路和次短路。注意这里的最短路和次短路不是真正意义上的最短路和次短路,只是x到它们路径经过的第一个点不同。这样的取每个点最短路+次短路的min值就行了。为什么这是对的呢?不会出现第一个点不同,但是后面有并集的情况吗?当然会,但是你会发现在它们并集原创 2018-05-08 19:33:58 · 913 阅读 · 1 评论 -
OI中用priority_queue替代set的一些小trick
set由于其功能强大,令人爱不释手。但是换来的是令人作呕的常数。其实在一些简单的操作中,set是可以用priority_queue来替代的,后者常数小,代码相对来说也要简洁一些。堆优化dij的priority_queue写法:*SPFA已死,有事烧纸正常的堆写法是需要删除的,显然set是可以做到这一点的,需要用pair,很烦。问题1:c++优先队列默认是大顶堆,我们需要取出的是距离最...原创 2018-10-12 21:34:32 · 554 阅读 · 0 评论 -
Johnson全源最短路算法
我们最熟悉的全源最短路算法那肯定是Floyd。不过Floyd的复杂度是O(n3)O(n^3)O(n3),显然难以接受。当图比较稀疏的时候,即点数n和边数m同阶时,Johnson算法便有了用武之地。假设图没有负边,则可以直接用堆优化的dij跑n次,时间复杂度为O(n∗((n+m)logm))O(n*((n+m)logm))O(n∗((n+m)logm))。如果有负边,考虑将图V转换为V’,V...原创 2018-11-07 16:55:58 · 2771 阅读 · 0 评论