spfa
disPlayLzy_
梦在前方,路在脚下
展开
-
洛谷 P1346 电车
题目大意: 每个路口都有开关决定轨道方向,开关一开始通向第s[i,1]个路口,想走另一个轨道,他就必须下车切换开关的状态,计算一辆从路口A到路口B最少需要下车切换几次开关。题解: spfa: 就是一个有向图中找i到j的最短路。 最多100个路口,其实用floyd,dijkstra都可以。 1.把每个路口能通往的其他路口记录下来,并且将数组初始化。 2.i到s[i,1]的权值是0,其他情况原创 2017-03-09 16:04:00 · 394 阅读 · 0 评论 -
Jzoj P5459 密室___状压spfa
题目大意:有NNN个房间,小XXX开始在房间111,出口在房间NNN,有KKK种类型的钥匙,给出通过某个房间能获得的钥匙,有MMM个传送门,每个传送门单向的从房间XXX通向房间YYY,而使用需要通过一些钥匙的搭配才能开启,钥匙在使用并不会消失。问最少通过多少个传送门才能到达出口。如果不能逃出这个密室,输出NoSolutionNo SolutionNoSolution。N≤5000,M≤60...原创 2018-09-22 21:56:52 · 194 阅读 · 0 评论 -
Jzoj P5771 遨游___二分+spfa
题目大意:有NNN个省,第iii个省有TiT_iTi座城市,编号分别为Ci1,Ci2,…,CiTiCi_1,Ci_2,…,Ci_{Ti}Ci1,Ci2,…,CiTi。有MMM条双向边连接城市xi,yix_i,y_ixi,yi,费用为wiw_iwi,当一条路的路费在[L..R][L..R][L..R]区间时,可免去。第iii个省内的每条道路路费收其百分之XiXiXi,连接第iii个省...原创 2018-09-22 22:08:46 · 159 阅读 · 0 评论 -
Bzoj P2330 [SCOI2011]糖果___差分约束系统
题目大意:N个人要分糖果,要求每个小朋友都要分到糖果,且要满足KKK个要求,对于每个要求给出一组X,A,BX,A,BX,A,B:X=1X=1X=1, 表示第AAA个小朋友分到的糖果必须和第BBB个小朋友分到的糖果一样多;X=2X=2X=2, 表示第AAA个小朋友分到的糖果必须少于第BBB个小朋友分到的糖果;X=3X=3X=3, 表示第AAA个小朋友分到的糖果必须不少于第BBB个小朋友分到...原创 2018-12-10 21:09:34 · 173 阅读 · 0 评论 -
Bzoj P1003 [ZJOI2006]物流运输___动态规划+最短路
题目大意:一批货物要从码头AAA运到码头BBB需要nnn天。希望能够制定一个nnn天的运输计划。码头总数为mmm,编号为111~mmm,码头AAA编号为111,码头BBB编号为mmm,每次修改运输路线所需成本为KKK,有eee条航线,每条航线给出其所连接的两个码头xxx和航线长度,单位长度的运输费用为111,航线是双向的。再给出ddd对限制(P,a,b)(P,a,b)(P,a,b),表示编...原创 2019-01-25 21:23:30 · 360 阅读 · 0 评论 -
Bzoj P1202 [HNOI2005]狡猾的商人___差分约束系统
题目大意:给出一本nnn个月的账本,mmm个提示(l,r,w)(l,r,w)(l,r,w)表示第lll到rrr月的收入总和为www,为这个账本是否合法, 即提示是否存在冲突。数据有TTT组。n<100,m<1000,T<100n<100,m<1000,T<100n<100,m<1000,T<100分析:设点iii表示前iii个月的收入总和,则对于一个提示(l,r,w)(l,r,w)(l...原创 2019-01-26 21:45:11 · 208 阅读 · 0 评论 -
Jzoj P4628 立方体___动态规划+spfa
题目大意:分析:预处理出每个面的相对面设dpi,j,k,l,mdp_{i,j,k,l,m}dpi,j,k,l,m表示到了位置(i,j)(i,j)(i,j),上面是kkk,前面是lll,右边是mmm时的最小总和然后用spfa更新即可最初的骰子的前后上右下左分别对应1,2,3,4,5,6k,l,m∈k,l,m∈k,l,m∈{1,2,3,4,5,61,2,3,4,5,61,2,3,4,...原创 2019-06-16 12:44:07 · 182 阅读 · 0 评论 -
牛客练习赛47 题解
A DongDong破密码:给定n,m,给出长度为n的01串,每次向后移动一位,移动m-1次,最后求出这n+m-1位每一位的异或值成为密码。给出密码,问长度为n的01串是怎样的。2<=n+m<=10000002<=n+m<=10000002<=n+m<=1000000,保证有解分析:密码第iii位设为aia_iai,原...原创 2019-06-10 20:55:52 · 345 阅读 · 0 评论 -
Jzoj P3238 超空间旅行___spfa+凸包
题目大意:给出行星的数目P和航线数量R,1≤P≤500,0≤R≤10000。接下来的R条航线路径包含两或三个整数:行星标号C和D(1≤C,D≤P,C≠D),和T,从C到D的旅行时间。对于传统的路径,T是一个整数(1≤T≤1000000),超空间航线中,T是字符“x”。 可以存在多行有两个相同的行星。下一行输入整数Q(1≤Q≤10),表示查询的数量。以下Q行包含两个整数星球标号(A和B...原创 2019-07-20 18:16:28 · 163 阅读 · 0 评论 -
Jzoj P3400 旅行___全排列+spfa
题目大意:从前有一位旅者,他想要游遍天下所有的景点。这一天他来到了一个神奇的王国:在这片土地上,有n个城市,从1到n进行编号。王国中有m条道路,第i条道路连接着两个城市ai,bi,由于年代久远,所有的道路都已经不能使用。如果要修复第i条道路,需要wi的时间。为了更好的旅行,旅者想要将某些道路修复,使得1号城市能够到达n号城市,2号城市能够到达n-1号城市…k号城市能够到达n-k+1号城市。为了满...原创 2019-07-27 12:19:45 · 220 阅读 · 1 评论 -
Jzoj P6286 走格子___spfa
题目大意:分析:对于每个点,向四个相邻点连边,边权为1向四个方向最远能走到的点连边,边权为通过其他三个方向的传送门走到这个点的最小值spfa即可代码:#include <iostream>#include <cstdio>#include <cmath>#include <queue>#include <cstring...原创 2019-08-09 17:20:33 · 224 阅读 · 0 评论 -
Jzoj P3737 挖宝藏___斯坦纳树+spfa+状压dp
题目大意:分析:发现很像斯坦纳树,设fk,i,j,sf_{k,i,j,s}fk,i,j,s表示挖的宝藏状态为s,斯坦纳树上包含点(k,i,j)(k,i,j)(k,i,j)时的最小花费考虑转移做到了第kkk层,我们枚举这层的宝藏的挖的状态,从小到大,当前枚举到了状态s,对于每个点我们先看之前的状态能否更新它,即fk,i,j,s=min(fk,i,j,s,fk,i,j,s′+...原创 2019-08-10 20:09:01 · 262 阅读 · 0 评论 -
Jzoj P3470 最短路___分点spfa+dfs
题目大意:一个nnn个点mmm条边的有向图,有kkk个标记点,要求从规定的起点SSS按任意顺序经过所有标记点到达规定的终点TTT,问最短的距离是多少。n<=50000,m<=100000n<=50000,m<=100000n0<=k<=10,1<=边权<=50000<=k<=10,1<=边权<=50000SSS跟每个标...原创 2018-09-08 15:36:46 · 363 阅读 · 0 评论 -
Jzoj P4261 最小代价___spfa+最小生成树
题目大意:给出一幅由nnn个点mmm条边构成的无向带权图,有些点是黑点,其他点是白点。 现在每个白点都要与他距离最近的黑点通过最短路连接(如果有很多个黑点,可以选取其中任意一个),我们想要使得花费的代价最小。请问这个最小代价是多少? 注意:最后选出的边保证每个白点到离它最近的黑点的距离仍然等于原图中的最短距离。1≤n≤100000,1≤m≤2000001≤n≤100000,1≤m≤20...原创 2018-07-11 21:24:35 · 317 阅读 · 0 评论 -
SSL P2516 2014年中山市选拔赛 dwarf tower
题目大意: 给出N个物品直接购买的价格,以及M组合成方式,即物品x与物品y可以合成物品z,求出获得第1个物品的最小花费。题解: spfa: d[i]表示合成第i个物品的最小值。 1.d[i]的初值是一开始直接购买第i个物品的值。 2.m组x,y,z,对于每组x,y,z,可以变成2条权值边,即x到z,权值为d[y],y到z,权值为d[x]。 3.枚举物品,以第i个物品为起点做spfa原创 2017-03-28 19:47:01 · 373 阅读 · 0 评论 -
洛谷 P1462 通往奥格瑞玛的道路
歪嘴哦想去奥格瑞玛即城市n,如果能到达的话,求在可行的所有路径中,f[i]的值的最小值,不能到达输出“AFK”。题解: 二分查找+spfa+队列: 1.找出城市中最小收费跟最大收费,然后对费用做2分查找。 2.对于二分的费用mid,做spfa,如果i可以到达奥格瑞玛且血量不超过歪嘴哦的血量就向前二分,不然到达就向后二分。 3.如果二分做完了,还不能到达就输出“AFK”,否则输出二分的结果。v原创 2017-03-24 19:12:28 · 575 阅读 · 0 评论 -
洛谷 P2296 寻找道路
题目大意: 在一个有向图中找出2点之间的最短路,并且路径上的所有点的出边所指向的点都直接或间接与终点连通。题解: spfa+队列+dfs: 1.从终点方向搜,把终点能到的点标记可到达。 2.把终点能到达的点的出边判断,如果出边未被标记则状态更新为不可到达。 3.做spfa,若t[i]可以到达就做,不然不做。var d,s,t,next,list:array [0..200001]原创 2017-03-15 15:51:50 · 387 阅读 · 0 评论 -
洛谷 P1144 最短路计数
题目大意: 在一个无向无权图中,求出点1到1~N点的最短路的数量。题解: spfa+队列优化: ans[i]表示有多少条1到i点的最短路。 双向图,要把2个相连的点正反方向都存储。 做一个spfa,如果dis[s[i]]+1小于当前的dis[t[i]]就替换,并且ans[t[i]]就等于ans[s[i]]的数量,如果等于把ans[t[i]]跟ans[s[i]]合并。 最后输出就好了,不过原创 2017-03-08 17:31:05 · 525 阅读 · 0 评论 -
洛谷 P3371 【模板】单源最短路径
题目大意: 在一个有向图中,有M条边(1<=M<=500000),N个点(1<=N<=10000),求点S到1~N个点的最短路径长度,无最短路就输出maxlongint。spfa+队列优化: dis[i]表示点s到i的最短路径,一开始dis数组为maxlongint。 1.用队列优化,就可以省略枚举每个点的时间,由O(M^2)变成了O(M)。 2.跑一波spfa,然后输出就好了。var原创 2017-03-08 17:07:39 · 621 阅读 · 0 评论 -
jzoj P2132【2017.4.21普及】架设电话线
题目大意: FJ的农场周围分布着N根电话线杆,任意两根电话线杆间都没有电话线相连。一共P对电话线杆间可以拉电话线,第i对电话线杆的两个端点分别为A_i、B_i,它们间的距离为L_i 。数据中保证每对{A_i,B_i}最多只出现1次。FJ的任务是找一条将1号和N号电话线杆连起来的路径。电信公司最终同意免费为FJ连结任意K对电话线杆。此外的电话线,FJ需要为它们付的费用,等于其中最长的电话线的长度(每原创 2017-04-22 15:08:13 · 1076 阅读 · 0 评论 -
模拟试——rate
题目大意: 有N个城市,编号分为1到N,每两个城市之间有且只有一条路。每通过一条路,就要支付一定的过路费,这个过路费等于商人身上的金钱数乘以一个不大于1的小数,并且这个小数会因道路的不同而不同。商人想从城市A去到城市B,问最多可以剩下多少钱。对于50%的数据,3 ≤ N ≤ 100; 对于所有的数据,3 ≤ N ≤ 500,1 ≤ A,B ≤ N,A ≠ B。题解: 虽然floyd优美点能过,原创 2017-06-15 16:02:57 · 313 阅读 · 0 评论 -
SSL P1128 恶魔城
题目大意: 恶魔城内有N个路口,有多个街道连接着任意2个路口,都是单向的(也就是说你不能逆着该街道指定的方向走),在城内无论怎么走都不可能走回原来走过的地方。初始时战士的HP为INITHP且在1号路口,撒旦则在第N号路口。街道上有魔鬼或者天使占领了。当战士经过连接i号向j号路口的街道时,如果占领该街道的是恶魔,那么他的HP先加倍然后减少L[i,j],我们记为A[i,j]=-L[i,j];如果占领该原创 2017-08-16 15:44:01 · 432 阅读 · 0 评论 -
SSL P2677 飞行fly
题目大意: 有n个城市,编号为0到n-1。小B想从城市s到城市t。他选择了一家航空公司,这家公司有m种航线,每种航线连接了两个不同的城市。小B可以免费在最多k种航线上搭乘飞机。问小B最小花费是多少。对于前30%的数据,2<=n<=50,1<=m<=300,k=0; 对于前50%的数据,2<=n<=600,1<=m<=6000,0<=k<=1; 对于前100%的数据,2<=n<=10000,原创 2017-08-11 07:38:50 · 402 阅读 · 0 评论 -
SSL P2133 腾讯大战360
题目大意: 有N个点,腾讯与360分别在点S,点T,给出M个a,b,c,表示点a到点b有一条连边(双向边),耗时为c,他们想在最短的时间内相遇,然后干一架。,求二者“相遇”的最短时间,当然,如果无法相遇则输出“Peace!” 在此我们定义“相遇”为:两个人皆在同一个有编号的城市上就可以了,并且这两个人均可以站在原地等另外一个人。也就是说,在这里我们不考虑两人在路中间相遇。 每组数据n=5000原创 2017-08-13 20:18:13 · 586 阅读 · 0 评论 -
SSL P2721 极其简单的最短路问题
题目大意: 给出N个点,M条边,以及目标点T,求点1到T的最短路是多少。30%:n<=10 m<=20 60%: n<=1000 m<=20000 100%: n<=5000000 m<=10000000题解: 这题就是裸的spfa,没什么好说了,注意几点; ①无向边,建边要双向 ②邻接表查询 ③数组注意大小 ④spfa 时间复杂度:O(N+M)var next,s,t原创 2017-09-15 21:41:24 · 502 阅读 · 0 评论 -
NOIP 2009 提高组 最优贸易
题目大意: 阿龙要从某个城市进一个水晶球然后拿去任意一个城市卖赚取差价来挣取旅费,给出n个城市的水晶球价钱与m 条道路表示城市x与城市y之间相同以及这条路是单向或者双向的,求阿龙最多赚取的旅费。题解: 不难发现,题目是求2点之间的差价的最大值。 1.spfa求出起点1到第i个点时水晶球能达到的最小的价格。(1<=i<=n) 2.再跑一遍spfa把能从终点到达的点标记。 3.在标记的点中找出原创 2017-03-24 20:40:39 · 490 阅读 · 0 评论 -
Luogu P4294 [WC2008]游览计划___斯坦纳树+spfa+状压dp
题目大意:n*m的矩阵,矩阵上有k个景点,对于某个不是景点的点,打通它需要耗费aia_iai(打通后经过不需要耗费),问将n个景点连通需要的最小花费,以及打通的一种最优方案。分析:好像是斯坦纳树的模板题,设fi,j,sf_{i,j,s}fi,j,s表示已经连通的景点状态为sss,这个连通块包含点(i,j)(i,j)(i,j)时的最小点权和是多少然后我们从小到大枚举状态sss,然后...原创 2019-08-11 21:05:24 · 240 阅读 · 0 评论