![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
最短路/最长路
文章平均质量分 71
commonc
这个作者很懒,什么都没留下…
展开
-
BZOJ3417: Poi2013 Tales of seafaring
题目大意:给n个点m条边无向图,每次询问两个点之间是否有长度为d的路径(不一定是简单路径) 从a到b假如有长度为x的路径,那就可以往回走一步再往前走一步得到长度为x+2的路径 所以可以求出每对点之间的奇数长度最短路和偶数长度最短路,然后判断是否小于d即可 PS: 1.这题卡内存,所以必须离线之后一个点一个点的枚举起点算完之后重新利用内存 2.会有单点不与外界联通并查询这个单点自己之原创 2016-05-31 14:46:02 · 954 阅读 · 0 评论 -
BZOJ3387: [Usaco2004 Dec]Fence Obstacle Course栅栏行动
题目大意:给定一个初始点和n个与x轴平行的y轴坐标互不相同的栅栏,问水平距离至少移动多少能使得从该初始点回到原点且不从中间跨越任何一条栅栏 首先可以确定,最终行进的路线一定可以等价于在几个栅栏的边界和起点终点间连线产生的路径,也就是说只有栅栏的边界是有用的,所以我们可以在这些点上建边跑最短路 但是这样的话边数是N^2级别的,所以我们要优化一下建图 考虑什么样的边是有效的,对于一个栅栏原创 2016-08-22 08:30:13 · 778 阅读 · 0 评论 -
BZOJ1576: [Usaco2009 Jan]安全路经Travel
题目大意:求从1到每个点不经过最短路的最后一条边的所有方案中的最短路 首先构出最短路径树(有所有在最短路上的边构成的树) 这样所有的答案路径都是从起点开始沿着树上的边走到一个点然后走一个不是树上的边,然后再在树上走 这样对于一条非树边(u,v)他能更新的答案就是对于所有的在(u,v)树上路径上的点(不包括LCA)x,ans[x]=min(ans[x],dis[u]+dis[v]+w-原创 2016-09-07 11:21:33 · 799 阅读 · 0 评论 -
BZOJ3832: [Poi2014]Rally
题目大意:给你一个DAG,让你删掉一个点,使得图中最长路最短 这是一道神题啊,不上网搜题解我是肯定不会做.... 首先新建超级源汇,问题就变成了求删掉一个点后,超级源点到超级汇点的最长路最短是多少 首先需要想到,任意的割集都会把至少一条从源到汇的最长路上的边割掉 所以我们可以先计算出源点到所有点的最长路以及所有点到汇点的最长路 然后为每个边赋一个权值,权值=源点到起点的最长路+终原创 2016-05-13 09:08:39 · 1249 阅读 · 0 评论 -
BZOJ1139: [POI2009]Wie
题目大意:大陆上有n个村庄,m条双向道路,p种怪物,k个铁匠,每个铁匠会居住在一个村庄里,你到了那个村庄后可以让他给你打造剑,每个铁匠打造的剑都可以对付一些特定种类的怪物,每条道路上都可能出现一些特定种类的怪物,每条道路都有一个通过所需要的时间,现在要从1走到n,初始的时候你没有剑,要求在经过一条道路的时候,对于任意一种可能出现在这条道路上的的怪物,你都有已经有至少一把剑可以对付他,求从1走到n的原创 2017-01-15 09:24:27 · 604 阅读 · 0 评论