spfa
文章平均质量分 68
cyl纤云弄巧
To Be
展开
-
POJ 3159(spfa + 数组模拟)
题意:n个人分糖果,问题是怎么分才能使第一个人和最后一个人相差最多。条件限制是有m个第a不能低于第b人c个。于是a+c >= b,则可以得到b b的权值是c。如果dis[a]+c 题中数据过多。则用spfa,并且需要数组模拟stack。#include#include#include#define inf 0x3f3f3f3f#define maxn 30005u原创 2016-11-03 17:10:46 · 267 阅读 · 0 评论 -
POJ 3159 (差分约束+spfa)
题意:输入a、b、c三个意思是b最大不能超过a 的值c。意味着a+c>b,想一下最短路的松弛条件刚好满足。解释一下差分约束:如果一个系统由n个变量和m个约束条件组成,其中每个约束条件形如xj-xi这道题刚好是满足这样的条件。差分约束可以转换成最短路来求解。http://www.cppblog.com/menjitianya/archive/2015/11/19/212292.html原创 2016-11-06 09:24:43 · 341 阅读 · 0 评论 -
POJ 1201(差分约束+spfa)
题意:有一个集合X,X[i+1]表示【0,i】之间的元素个数。 并且有以下条件:X[b] >= X[a] + c,即X[b+1] > X[a] + c.即可以看作a到b的路的权值是c。条件很容易建立边,转化为图论中的最短路问题,当然此题可以看作是最长路。问题是条件太少,一个最短路问题主要就是建图。所以为了使每一条边有联系。亦可以找到隐藏条件:1 >= X[i+1] - X[i] >= 0,0原创 2016-11-06 10:55:55 · 343 阅读 · 0 评论 -
HDU 2544(简单spfa)
汉语题。思路:暴力spfa。不需要变形,适合入门。#include#include#include#include#include#define inf 0x3f3f3f3fusing namespace std;int dis[105],visit[105];int n,m;class Node{public: int e,v;原创 2016-10-28 13:14:09 · 483 阅读 · 0 评论 -
POJ 3013 (变形spfa)
题意:给出n个点,m个边。给出每个点的权值,每个边的权值。求建立一棵树,根节点是1,求这棵树的最小费用,费用=(每条最短路*子树中各顶点的权值)之和。数组模拟表头,很多需要注意的。加油!#include#include#include#include#define inf 0xFFFFFFFF //很大40多亿#define maxn 50005u原创 2016-10-31 20:17:52 · 224 阅读 · 0 评论 -
POJ1511
题意:单向图,n个点m条路。问题是求从1到其它点一来一回共多少距离。按照dijkstra,floyd,bellman都很容易超时。最开始选择的spfa是用vector实现的,也超时了。。。又用数组模拟链表。#include#include#include#include#define inf 0xFFFFFFFF //大概40多亿#define maxn原创 2016-10-30 13:46:28 · 534 阅读 · 0 评论 -
POJ3255(spfa变形,很好的一道题)
题意:类似于次最短路,但却不是次最短路。此题要求的是比最短路大一点的路,意味着在从1到n的过程中夺走了一条边,我们现在求出多走一条边的最短路。思路:既然是多走了一条边,那么遍历每一条边记录最小的值。题目保证一定存在这条边。#include#include#include#includeusing namespace std;const int INF = 0x3f原创 2016-11-24 16:50:14 · 490 阅读 · 0 评论 -
codevs 1557 热浪 SPFA 最短路
SPFA 最短路1557 热浪时间限制: 1 s* 空间限制: 256000 KB** 题目等级 : 钻石 Diamond* 题目描述 Description德克萨斯纯朴的民眾们这个夏天正在遭受巨大的热浪!!!他们的德克萨斯长角牛吃起来不错,可是他们并不是很擅长生產富含奶油的乳製品。Farmer John此时以先天下之忧而忧,后天下之乐而乐的精神,身先士卒地承担起向德克萨斯运送大量的营养冰凉的牛原创 2017-08-28 16:26:43 · 273 阅读 · 0 评论