随笔分类 -  SPFA

摘要:题面 这道题可以理解为是一个分层图,也可以理解为是二维的SPFA dis[i][j]表示到达i这个点速度为j的最短路 然后跑已经死了的SPFA就好了; 阅读全文
posted @ 2019-10-28 10:54 神之右大臣 阅读(223) 评论(0) 推荐(0)
摘要:1.USACO08JAN Telephone Lines 题面 由于问的是最大值最小,所以二分加验证就好了 比较显然的,题干问的是第k+1长的路最短; 那么二分答案是正确的方向; 但是怎么验证? 我们可以将所有边权大于二分的答案的边视为边权是1,否则看成0; 然后从1~n跑最短路,如果答案大于二分的 阅读全文
posted @ 2019-10-10 19:32 神之右大臣 阅读(451) 评论(0) 推荐(0)
摘要:题面 首先忽略掉题中k的限制(油量的限制); 那么很清楚的发现:对于一个点(i,j);向(i+1,j),(i,j+1)建立一条容1费0的边;向(i-1,j),(i,j-1)建立一条容1费B的边; 很清楚的:从(1,1)到(n,n)跑费用流就好了; 那么加上k的限制呢? 由于k很小,所以我们可以建立分 阅读全文
posted @ 2019-10-10 12:00 神之右大臣 阅读(194) 评论(0) 推荐(0)
摘要:题面 这道题是一道不错的计数类DP; 首先我们一定要跑一遍dijkstra来求得每个点到1号点的最短路; 注意题干,题中并没有说所有点都可以到达n好点,只说了存在一条1号点到n号点的路径;所以我们在反向图上BFS求出那些点可以到达n号点; 然后就是dp。我们设计状态:f[u][rest]表示到达u号 阅读全文
posted @ 2019-10-05 10:32 神之右大臣 阅读(235) 评论(0) 推荐(0)
摘要:想必大家都会求最短路吧,这里就不再多说了;我看有很多人在一顿套模板,什么dijkstra,SPFA等等,这是可以的;但身为OIer,思路要开阔对不对?首先我们注意到,我们可以利用bfs来求每个点的深度。因为在所有边边权为1的时候,点的深度就是点的最短距离;这样在写法上便少了队列优化SPFA中退栈时还 阅读全文
posted @ 2019-10-04 20:23 神之右大臣 阅读(265) 评论(0) 推荐(0)
摘要:题面 // <![CDATA[ hitokoto() // ]]> 这道题似乎可以用单调队列优化DP做,但这里讲的是一种差分约束的思路; 设s[i]表示1~i中选了多少个; s[b[i]]-s[a[i]-1]<=1; s[b[i]]-s[a[i]-1]>=1; s[i]-s[i-1]<=1; s[i 阅读全文
posted @ 2019-09-27 10:34 神之右大臣 阅读(228) 评论(0) 推荐(0)
摘要:题面 这道题需要用到一个神奇的知识点:log(n*m)=log(n)+log(m); 所以对所有边权取个log,然后算log的最短路的同时维护乘积即可 阅读全文
posted @ 2019-09-20 16:06 神之右大臣 阅读(147) 评论(0) 推荐(0)
摘要:题面 这道题是一道标准的01分数规划: 但是有一些细节可以优化: 不难想到要二分一个mid然后判定图上是否存在一个环S,该环是否满足∑i=1t(Fun[vi]−mid∗Tim[ei])>0 但是上面的算法并不好实现,所以可以将两边同时乘上-1,使式子变为∑i=1t​(mid∗Tim[ei​]−Fun 阅读全文
posted @ 2019-09-18 20:06 神之右大臣 阅读(260) 评论(0) 推荐(0)
摘要:题面 1. 图书馆馆长的考验(library) 红魔馆的拥有者蕾米莉亚的好友帕秋莉是红魔馆的大图书馆的馆长。擅长操纵五行,名言是“万物都有属性。所谓的属性,和弱点是一样的”。 一天,因为魔理沙看了神之右大臣的视频却不投硬币不点收藏不加关注导致受到了幽幽子的追杀。在博丽灵梦的引荐下,魔理沙来到红魔馆去 阅读全文
posted @ 2019-08-01 10:38 神之右大臣 阅读(407) 评论(0) 推荐(0)
摘要:题面 裸跑一遍SPFA,统计每个点的入队次数; 如果该点的入队次数>=总点数,那么该点便是一个负环上的点; 重点!!!: 1.不是“YES”,是“YE5”; 2.不是“NO”,是“N0”;(是零); 3.多测不清空,爆零两行泪; 阅读全文
posted @ 2019-07-31 10:36 神之右大臣 阅读(215) 评论(0) 推荐(0)
摘要:spfa队列优化(用来求最短路) 实现方法: 1.存入图。可以使用链式前向星或者vocter。 2.开一个队列,先将开始的节点放入。 3.每次从队列中取出一个节点X,遍历与X相通的Y节点,查询比对 Y的长度 和 X的长度+ X与Y的长度 如果X的长度+ X与Y的长度 > Y的长度,说明需要更新操作。 阅读全文
posted @ 2019-07-19 14:00 神之右大臣 阅读(367) 评论(0) 推荐(0)