SPFA
小狐狸jun
菜鸟飞呀飞~
展开
-
poj 3621 二分+spfa
题意:给出一个有向图,问求一个回路,使得回路上的点权之和/边权之和最大。这题主要是分析出如何确定ans值。我们将(a1*x1+a2*x2+..+an*xn)/(b1*x1+b2*x2+..+bn*xn)=L,转换为:x1*(a1-b1*L)+x2*(a2-b2*L)+...xn*(an-bn*L)=0则每次枚举L的值,spfa中边权值为len[]*L-a[],若存在负环回路(即一个点访原创 2013-07-29 17:23:56 · 421 阅读 · 0 评论 -
poj 3013 SPFA
首先看题看的很懵..然后这题直接没想用Djstra做 TLE了。看discuss,Dijstra要用堆优化,也可以用SPFA做。这里在网上找了这两种做法的区别,点多稠密图用Dij,以为它是操作点的,反之则用SPFA。好久没做题了,前一段时间尽做水题去了。还有这一道题的数据巨大,各种WA。要用__int64,同时SPFA中要注意环的问题。dis的初始化也要注意全部初始为无穷大。先原创 2013-07-21 16:27:40 · 1610 阅读 · 1 评论 -
poj 3592 缩点+SPFA
题意:给出一个矩阵,其中#代表墙,不可走,0-9代表权值,*代表可以选择传送。求从0,0点开始出发能获得最大权值。 思路:因为*的出现会有环的情况,先建图连边,将环进行Tarjan缩点,之后再从0,0用SPFA找最长路就行了。 麻烦的地方在于建图,还有各种错 代码:#include#include#includeusing namespace std;#原创 2013-08-11 12:00:30 · 1100 阅读 · 0 评论