![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
最短路
qkoqhh
这个作者很懒,什么都没留下…
展开
-
poj3311(flyod+状压DP)
这类问题貌似叫TSP问题。。然后这个好像还是NP问题。。(算了到现在都不造NP问题是什么。。qaq)先来个flyod算出最短路(好久没写过最短路了耶。。),然后直接记录经过了哪些点,直接二进制压缩就行。。由于还要在折返回去,所以要记录当前状态最后一个点在哪,在经过所有点的基础上返回1点。。。转移的话顺推会比较快一点。。。#include#include#includ原创 2018-01-25 18:07:01 · 439 阅读 · 0 评论 -
bzoj4289(神建图+最短路)
再学一个建图姿势。。可以把边看成点,然后有公共点的边相互连边,跑最短路就可以了。。然而菊花图会退化成m^2,需要再优化。。把无向边拆成2个有向边,对每个点存入边和出边,然后出边之间做个差分,即对出边的边权排序,然后相邻边之间连边,小边向大边连权值为2边权值之差的边,大边向小边连权值为0的边,这样入边只需向他的对应边连一个权值为原边权的边即可达到去最大值的效果。然后剩下起点和终点就直...原创 2018-09-10 18:22:50 · 540 阅读 · 0 评论 -
bzoj4152(优化建图+最短路)
所有点对x排序,相邻点连边,所有点对y排序,相邻点连边,然后跑最短路就行了。。 /** * ┏┓ ┏┓ * ┏┛┗━━━━━━━┛┗━━━┓ * ┃ ┃ * ┃ ━ ┃ * ┃ > < ┃ * ┃ ┃ * ...原创 2018-08-21 14:07:10 · 253 阅读 · 0 评论 -
bzoj3073(线段树优化建图)
汪聚聚的题真的是骚。。。直接讲套路建2棵线段树一棵入树、一棵出树,叶子节点分别连边,然后连边的时候可以按照线段树的方式将区间分成logn个区间,在区间之间直接连边,但是会有log^2条还是很糟,因此对条单向边建一个新节点,从入树和出树分别想这个节点连边,然后就只有logn条边了。。由于是跑最短路我们就只用线段树的下标表示思想而不直接写线段树,跑起来还是挺快的。。建完图跑spfa美滋滋。。...原创 2018-08-15 20:52:48 · 243 阅读 · 0 评论 -
hdu5889(最短路+最小割)
emmmm这个跑个最短路。。然后dfs跑出最短路径树直接把树上的边都拿来重建图然后跑最小割就可以了。。。 /** * ┏┓ ┏┓ * ┏┛┗━━━━━━━┛┗━━━┓ * ┃ ┃ * ┃ ━ ┃ * ┃ > < ┃ * ┃...原创 2018-08-10 01:34:39 · 199 阅读 · 0 评论 -
hdu6331(最短路+DP)
这个主要是考flyod的本质应用。。貌似没理解到位这次没做出来qaq,其实和上次宁夏挺像的。。设d[k][i][j]为从i到j走k步的最短路然后和原边依次合并就是转移了。。直接转移肯定是不行的。。可以想一下优化。。这个转移方程其实和矩阵乘法大同小异(加法变成了min),所以一个思路是快速幂求(貌似dls最初的解法)。。然而询问是O(qnlogn)这个比较极限。。估计会被卡。。(这场...原创 2018-07-31 13:48:24 · 697 阅读 · 0 评论 -
bzoj4016(最短路+点分治)
题意看了好久才懂。。。先跑个最短路把树建出来。。然后就直接点分治。。记录包含k个点的最长路径及其方案数,然后直接用m-dist找就行了。。不难。。/** * ┏┓ ┏┓ * ┏┛┗━━━━━━━┛┗━━━┓ * ┃ ┃ * ┃ ━ ┃ * ┃ > < ┃ * ...原创 2018-06-23 00:46:46 · 282 阅读 · 0 评论 -
bzoj1001(网络流+对偶图)
这道算是比较正宗的对偶图了。。题意很明显是求最小割,然后由最大流最小割定理又可以转化成最大流。。然而如果直接跑ispa明显会tle,10^6个点呢。。那最大流要怎么求呢。。这就是对偶图的一个经典应用了。。http://blog.sina.com.cn/s/blog_60707c0f01011fnn.html对偶图概念和在最大流上的应该这篇文章讲的还算蛮清楚,其实就是对偶图上的边代表了从哪阻断原图上...原创 2018-03-04 14:10:19 · 323 阅读 · 0 评论 -
wannafly交流赛1D(对偶图->最短路)
对偶图是什么我是不造啦。。大家都说看到阻断路线就得想到对偶图(怎么泥萌都会啊qaq然后很容易发现,阻断的方案应该是一条折线,或者说是一条路径,而且路径上的点权值要最小。。这样就可以转化成最短路求解了,从右边或上边到左边或下边,当然不一定是从右上到左下的,毕竟最短路可能会折回来一点啊。。然后最后需要注意的是这个要直接在原图上跑最短路,不然会tle。。后来去学了一下对偶图,其实也比较好原创 2018-03-04 14:02:40 · 174 阅读 · 0 评论 -
cf938d(建图技巧+最短路新模板)
这个题还是蛮好的。。充分反应了窝智商不够题又做得不多的事实。。。这个需要建图(网络流既视感。。),先把原图的边权值*2,建一个超级源点,连到各个点 ,权值为ai,然后跑最短路即可,每条从源点出发的路径可以看做一种反过来的方案。。。汪聚聚说看到多源最短路就要想到建图。。orz果然窝是经验不足。。之前以为建图是网络流特色。。其实图论应该都有这类操作,以后得好好学学。。。另外。。在c原创 2018-02-17 14:05:11 · 753 阅读 · 0 评论 -
牛客训练赛(最短路)
这个是求关键点到其他关键点的最小距离。。感觉比较经典??然而做法比较沙雕。。很容易想到从超级大源点向关键点连边然后跑dij,可是会出现就是关键点的最小距离会连他自己算在内,只要解决这个问题这题就完了。。因此在求最短路的时候可以再增加一个标号,即这个最短路是从哪个关键点得到的。。然后对同个关键点来的直接按照普通最短路做就可以。。然而我们只需要排除标号是自己本身的情况,因此在几个标号的最短路中...原创 2018-10-03 18:21:35 · 291 阅读 · 0 评论