随笔分类 - 图论 -- 最短路
摘要:【UOJ 32】【UR 2】跳蚤公路(最短路) 题面 "UOJ" 题解 不难发现要求的就是是否存在负环。也就是我们只需要找到所有的负的简单环,很容易就可以想到维护路径上和x相关的内容,即维护一下u到v路径上,含有kx的路径的最小的b。这个可以用Floyd在O(n5)的复
阅读全文
摘要:【BZOJ4016】[FJOI2014]最短路径树问题(点分治,最短路) 题面 "BZOJ" "洛谷" 题解 首先把最短路径树给构建出来,然后直接点分治就行了。 这个东西似乎也可以长链剖分,然而没有必要。 cpp include include include include include inc
阅读全文
摘要:【BZOJ5506】[GXOI/GZOI2019]旅行者(最短路) 题面 "BZOJ" "洛谷" 题解 正着做一遍dij求出最短路径以及从谁转移过来的,反过来做一遍,如果两个点不由同一个点转移过来就更新答案。 cpp include include include include using n
阅读全文
摘要:【BZOJ5197】Gambling Guide (最短路,期望) 题面 "BZOJ权限题" "洛谷" 题解 假设我们求出了每个点的期望,那么对于一个点,只有向期望更小的点移动的时候才会更新答案。 即转移是:$\displaystyle f[u]=\frac{\sum_{v,(u,v)\in E}m
阅读全文
摘要:【CodeChef】Querying on a Grid(分治,最短路) 题面 "Vjudge" "CodeChef" 题解 考虑分治处理这个问题,每次取一个mid,对于mid上的三个点构建最短路径树(因为保证了最短路唯一所以是树)。 如果两点之间的最短路径跨越了mid,那么必定有$di
阅读全文
摘要:【BZOJ4061】[Cerc2012]Farm and factory(最短路,构造) 题面 "BZOJ" 然而权限题QwQ。 题解 先求出所有点到达1,2的最短路,不妨记为du,1,du,2。 那么假设新点是x,任意一个点u。 那么可以得到几个不等式:$d_{u,1}
阅读全文
摘要:NOIP2013题解 Day1 转圈游戏 circle 快速幂模板题。 花匠 flower 发现要求的就是一个最长波动序列。考虑一种dp做法,设f[i][0/1]表示当前第i个位置,它是峰开始谷,转移的时候分类讨论一下。如果hihi+1,那么$f[i][1]=f[i 1][
阅读全文
摘要:【BZOJ2285】[SDOI2011]保密(分数规划,网络流) 题面 "BZOJ" "洛谷" 题解 首先先读懂题目到底在干什么。 发现要求的是一个比值的最小值,二分这个最小值k,把边权转换成tsk,其中t是时间,s是安全系数。那么通过一遍SPFA可以求出到达所有的目标点的危险
阅读全文
摘要:【BZOJ1880】[Sdoi2009]Elaxia的路线(最短路) 题面 "BZOJ" "洛谷" 题解 假装我们知道了任意两点间的最短路,那么我们怎么求解答案呢? 不难发现公共路径一定是一段连续的路径(如果不连续那么显然可以把中间分开的那段变成一样路径)。 这样子我们只需要O(n2)枚举这个
阅读全文
摘要:【BZOJ1295】[SCOI2009]最长距离(最短路) 题面 "BZOJ" "洛谷" 题解 这题很妙啊。 我们枚举一个点,只需要考虑到他的最远点就行了,显然只需要考虑一个点即可。那么这两个点之前联通的最小代价显然就是连接这两个点的路径中1最少的那条,那么直接跑一遍最短路就好了。 cpp in
阅读全文
摘要:【BZOJ1294】[SCOI2009]围豆豆(动态规划,状压) 题面 "BZOJ" "洛谷" 题解 首先考虑如何判断一个点是否在一个多边形内(不一定是凸的),我们从这个点开始,朝着一个方向画一条射线,看看它和这个多边形的变相交了几次,如果是奇数次那么一定在这个多边形内,否则不在。 这个可以感性理解
阅读全文
摘要:【BZOJ1967】[AHOI2005]穿越磁场(最短路) 题面 "BZOJ" "洛谷" 题解 一个显然的思路是这样的,我们的正方形的边长把整个平面割成了若干块,显然每个联通块都可以看着做一个点,那么接下来只需要把所有的有相邻边的联通块全部连上一条长度为1的边表示如果要从这个联通块到达另外一个联
阅读全文
摘要:【Vijos1404】遭遇战(最短路) 题面 "Vijos" 题解 显然可以树状数组之类的东西维护一下dp。这里考虑一种最短路的做法。 首先对于一个区间[l,r],显然可以连边(l,r+1),那么最终的问题转化成了从S时刻到E时刻的最短路。发现显然并不在意一个时间可以被个线段覆盖
阅读全文
摘要:【BZOJ1922】大陆争霸(最短路) 题面 "BZOJ" "洛谷" 题解 最短路变形题。 定义dis表示最短路,d表示最早可以进入当前点的时间。显然d=max(max(disv,dv)),其中v有着当前点的结节发生器。 那么Dijkstra跑一遍就好了。 注意一下这题边是单向的
阅读全文
摘要:【BZOJ2118】墨墨的等式(最短路) 题面 "BZOJ" "洛谷" 题解 和跳楼机那题是一样的。 只不过走的方式从3种变成了n种而已,其他的根本没有区别了。 cpp include include include include using namespace std; define M
阅读全文
摘要:【洛谷3043】跳楼机(最短路) 题面 "洛谷" 题解 思路很妙嗷。 先只考虑只用y,z两种移动方式,它们一定能够到达一些楼层, 那么这些楼层再只用x拓展就能够计算答案。 那么我们这样子计算答案,设dis[i]表示可以到达mod x=i的楼层的最小值, 显然这个玩意可以最短路求,那
阅读全文
摘要:【BZOJ4912】天才黑客(最短路,虚树) 题面 "BZOJ" "洛谷" 题解 Anson爷讲过的题目,然而我还是不会做 只有照着zsy的程序打我才会做。。。。果然太弱了。 这道题目显然是把边看成点,然后把原图中的每一个点的入边和出边之间相互连边, 边权是lcp的长度,也就是在$Tri
阅读全文
摘要:【BZOJ2007】【NOI2010】海拔(最小割,平面图转对偶图,最短路) 题面 "BZOJ" "洛谷" Description YT市是一个规划良好的城市,城市被东西向和南北向的主干道划分为n×n个区域。简单起见,可以将YT市看作一个 正方形,每一个区域也可看作一个正方形。从而,YT城市中包括(
阅读全文
摘要:【BZOJ1001】狼抓兔子(平面图转对偶图,最短路) 题面 "BZOJ" "洛谷" 题解 这题用最小割可以直接做 今天再学习了一下平面图转对偶图的做法 大致的思路如下: 1.将源点到汇点中再补一条不与任何线段有交点的边。这条边把外侧无限大的区域划分为了两部分,一部分为S面,另外一部分为T面
阅读全文
摘要:【BZOJ1491】【NOI2007】社交网络(最短路,动态规划) 题面 "BZOJ" "洛谷" ~~图片是假的,只能到OJ上看~~ Description 在社交网络(socialnetwork)的研究中,我们常常使用图论概念去解释一些社会现象。不妨看这样的一个问题。 在一个社交圈子里有n个人,人
阅读全文