摘要: 多个起点,一个终点,求最短路,额,一开始三种SPFA都试了一下,用队列实现,用栈实现,唉,都悲剧的TLE了,怎么就没想到呢,把终点变成起点,就只需要调用一次SPFA了,而且,最后在遍历一下,找出路径最短的原先的起点,#include<iostream> #include<queue>#define MAXINT 9999999 #define MAXN 1010 using namespace std; int vis[MAXN],dis[MAXN],n,num,m; int root[MAXN],cou[MAXN]; struct edge { int u,w,nex 阅读全文
posted @ 2011-08-14 16:58 枕边梦 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 这题目是pku1201的简化版本,稍微改一下输入就AC了题目大意:给 n 个区间,从每个区间至少取两个不同的元素。求形成的新的集合最少包含多少个元素。* 思路:对于每个区间 [ ai , bi ]至少取两个元素 => num [ b ] - num [ a - 1 ] >= 2* 隐含条件: 1 >= num [ i ] - num [ i - 1 ] >=0* 求:num [ max ] - num [ min - 1 ] >= ans;刚发现一个问题,不知道自己有没有理解错:看下面俩段代码:1)//for(int i=min1;i<=max1;i++)/ 阅读全文
posted @ 2011-08-14 15:10 枕边梦 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 题意:小孩A认为小孩B比自己多出的最多不会超过c个糖果,也就是 B - A <= c,正好符合差分约束方程,就是A到B的边权w(A, B) = c;用 SPFA + 栈 能过。这题目,应该也算是差分约束的基础题吧,只不过用SPFA+队列实现超时了,无语呀#include<iostream>#define MAXINT 9999999#define MAXN 30010using namespace std;int vis[MAXN],dis[MAXN],n,num,m;int root[MAXN],stack[MAXN];struct edge{ int u,w,next;} 阅读全文
posted @ 2011-08-14 13:50 枕边梦 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 果然,差分约束的构图才是最关键的步骤,spfa的过程基本已经很熟了,用队列实现的话在加边的时候,理解错了,重复加边了,s[a]-s[b]>=c 跟s[b]-s[a]>=-c 有区别么?天啊,秀逗了,我来了俩个add(a,b,c),add(b,a,-c)………………题目有三个判断条件,存在负环,则无解,dis[n]=MAXINT,则可以为任意距离#include<iostream>#include<queue>#define MAXINT 9999999#define MAXN 1010using namespace std;int vis[MAXN],cou 阅读全文
posted @ 2011-08-14 09:59 枕边梦 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 唉,这明明也是一道差不多的题目,为什么构图完之后,还是错了很久,我很不解呀,一直改,一直改,但是时间还是很慢,2766ms,SPFA+队列实现所以很想改一下,用栈来实现,可结果却是给了我一个TLE,无语呀,不知道怎么回事,看了大牛的很快呀,差不多500ms,用SPFA+栈实现,难道是我在预处理,构图的时候,慢了?不解呀?我自己的加边操作很方便,可是很慢吗?= =!郁闷,看来得改改习惯了额,都没讲下题目:分析题意:输入有两种形式:1:P A B X 即 B + X = A 转化一下: B - A <= -X, A - B <= X 构造边和权:(A, B, -X), (B, A, X 阅读全文
posted @ 2011-08-14 02:31 枕边梦 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 这题目应该算是比较基础的差分约束吧,嘻嘻,也算是我的第一道差分约束,理解了题意之后,就是转化和构图的问题了 Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 构图方法:首先进行转换:a[j]+...+a[j+m] = a[1]+...a[j+m] - (a[1]+...+a[j-1]) = sum[j+m] - sum[j-1]>(<) ki. 差分约束只能全部是<=或者(>=).第二步转换: sum[j+m]-sum[j-1] <= ki-1 或者sum[j-1]-sum[j+m] & 阅读全文
posted @ 2011-08-14 00:08 枕边梦 阅读(182) 评论(0) 推荐(0) 编辑