
SPFA(Bellman优化版)
eIectron
优美的代码是成功AC的第一步。看着那么多博客不再更新,这就是我几年后的状态吗?要是走了就再也不回来了。
展开
-
POJ3159 Candies(差分约束+SPFA的栈实现)
CandiesTime Limit: 1500MS Memory Limit: 131072KTotal Submissions: 29256 Accepted: 8104DescriptionDuring the kindergarten days, flymouse was the monitor of his原创 2016-08-31 15:41:34 · 322 阅读 · 0 评论 -
HDU 6201 transaction transaction transaction(最短路)
解法:由于每个点有一个商品,花费为w,我们想卖出去,但是路也有花费,如果在某个点卖出去,相当于赚回wi元。那么我们建图,一个起点向每个点连接一个边权为-wi的边,每个点向终点连接一个边权为+wi的边,原图中的边也加进去,从起点向终点跑一边spfa即可。代码如下:#include#include#include#include#include#include#include#i原创 2017-09-14 19:50:52 · 267 阅读 · 0 评论 -
HDU 1317(spfa找环)
题意:给出n个点,每个点都有能量,一开始你在点1,有100能量,你要去点n。每到达一个点就会拿到这个点的能量,每到一点的能量不可以小于等于0,。问是否有可行方案。解法:想了想知道这是个最长路,但是看到样例就有环这个问题,想了想处理一下环但是处理得非常不好。后来看到别人的学习了一波,虽然我的思路也是这样但是我就是写不出来。。。如果某个点入队列次数等于n,就让他的dis为INF,如果大于n,就不让原创 2017-08-28 15:31:33 · 414 阅读 · 0 评论 -
POJ 2175 Evacuation Plan(网络流消负圈算法)
这是挑战上的一道题。一开始看到这道题,我是直接套最小费用流上去写的,然后无限T。。。后来看到,原来不是要找最优的情况,只需要输出一组答案比当前结果花费小即可。然后看书,才知道有消负圈算法这种东西。费用流中最优的网络是不存在负圈的,最最简单的理解就是,可以看到上面这个图,我们费用流是在最大流的前提下找最小费用,但是上面这个图肯定不是最大流,s到t还有1个流量单位。何为负圈原创 2017-08-05 11:11:33 · 989 阅读 · 0 评论 -
CodeFroces 96D Volleyball (最短路预处理跑最短路)
题目大意:给出n个路口,m条路,m条路是无向的,长度为w。然后每个路口都有一个出租车司机,只要坐他的车,就必须交c元,他最多可以载你走的长度为t的路。问从x到y的最小花费是多少。这道题一开始写懵逼了,想直接跑一遍最短路,都测到test31了,然后wa了。后来想了好久发现,有可能一开始到达了a点,然后走到b,c后回到a,此时也是一种情况,虽然回到来的花费肯定是上涨了,但是他有可能能跑的距离变长了原创 2017-08-14 11:46:28 · 270 阅读 · 0 评论 -
HDU 5889 Barricade(最短路建图跑网络流)
这是一道玄学题目。跑最短路很简单,跑网络流也是模版而已。但是我跑完最短路后从n开始向前bfs找满足dis[u] == dis[v] + 1的边,然后加入网络流的图里面。这样做会TLE。然后想了好久实在不知道搞什么鬼,看了看别人代码,别人是直接把所有边for一遍,只要满足dis[u] + 1 == dis[v]的,都加入网络流里面。这样当然也可以,我改了改,15ms就过了。但是这bfs也原创 2017-08-10 10:34:14 · 262 阅读 · 0 评论 -
POI X Sums(同余最短路)
SumsMemory limit: 32 MBWe are given a set of positive integers . Consider a set of non-negative integers , such that a number belongs to if and only if is a sum of some elements from (the原创 2017-08-08 10:57:15 · 881 阅读 · 0 评论 -
2017年多校赛第四场 1005 Lazy Running(同余最短路)
点击打开链接题意很简单,就是给出一个距离k,你从2开始跑,可以在四条道路上随便跑,最终回到2,问最短距离是多少。这是一类经典的取模最短路的题目,在叉姐的网站上面就有这种类型题目的介绍,然而当时看不懂叉姐说啥,现在又有这种类型的题目,看了看别人的博客,觉得算是理解了。我们怎么考虑这个问题呢?首先,我们可以发现,你完全可以直接在1到2或者2到3的道路上来回多次,这样你最终一定可以回到2。我原创 2017-08-07 17:31:54 · 459 阅读 · 0 评论 -
BZOJ 1179: [Apio2009]Atm(tarjan缩点+spfa)
http://www.lydsy.com/JudgeOnline/problem.php?id=1179首先分析数据大小,n,m由于他是个有向图,而且有可能存在环,那么很容易想到缩点。而且题目中也说明一个环是很具有意义的,可以走完这里面的atm拿到money并且出来到达其他环。所以我们的目标就是把环与环之间连起来然后跑最短路,找出一个能得到最多money的路径。代码如下:#incl原创 2017-07-15 08:38:14 · 324 阅读 · 0 评论 -
POJ1511 Invitation Cards(spfa模板题)
Invitation CardsTime Limit:8000MS Memory Limit:262144KB 64bit IO Format:%lld & %lluSubmit Status Practice POJ 1511DescriptionIn the age of television, not many people a原创 2016-08-12 09:42:11 · 418 阅读 · 0 评论 -
[ZJOI2006]物流运输 (最短路+dp)
如果本题没有换线路要k的花费这个条件,很明显就是直接枚举天数,每次都跑一个最短路即可。但是现在有这个条件,我们就要加上dp的思想,来分段决策。解法:1.枚举起始天和终止天,然后排除这个范围内无法一直有效的点,跑一遍最短路,用cost[i][j]记录此时到达港口m的最小花费。2.进行一次dp,dp[i]代表的是第i天开始到第n天的最小花费,边界为dp[n + 1] = -k。然后从第n天原创 2017-09-26 18:42:15 · 306 阅读 · 0 评论