链接:http://vjudge.net/problem/viewProblem.action?id=24941描述:n个点,m条边的无向图,寻找从S到T的最短路。思路:基础的单源点最短路 用Dijkstra或spfa都可以解决这是我的实现: 1 #include 2 #include 3...
分类:
其他好文 时间:
2014-07-06 18:01:57
阅读次数:
181
题目很简单、给一个有向图,求两点间的最大流量与任意一条路中的最大流量的比值。最大流不说了,求出单条流量最大的路径可以用类似Spfa的方法来搞,保存到达当前点的最大流量,一直往下更新即可。召唤代码君:#include #include #include #include #define maxn 10...
分类:
其他好文 时间:
2014-07-05 19:53:06
阅读次数:
184
题目地址:POJ2195
本人职业生涯费用流第一发!!快邀请赛了,决定还是多学点东西,起码碰到简单的网络流要A掉。以后最大流费用流最小割就一块刷。
以前费用流在我心目中一直是高大上,高不可攀的形象,可这两天才发现,原来费用流就是一个spfa再加点东西。。。一直以为费用流会比最大流的isap要麻烦好多,毕竟多了一个费用的元素。。。。我真的错了。。仔细研究了一下,只用一个spfa确实就可以解决了。...
分类:
其他好文 时间:
2014-07-03 18:15:51
阅读次数:
200
题目如下:
Problem D: XYZZY
ADVENT: /ad?vent/, n.
The prototypical computer adventure game, first designed by Will Crowther on the PDP-10 in the mid-1970s as an attempt at computer-refereed fantasy...
分类:
其他好文 时间:
2014-07-03 18:09:47
阅读次数:
211
最短路问题变形。
题意是说从各个点运送东西到 n;能剩下来最多的。(无向图)
整体变成了求到各点时 最大的 剩余率。
边权变成了过路费率p,0
存储的时候用 1-p 存 剩余率。实际剩下的货物是 goods *(1-p)
#include
#include
#include
#include
#include
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2014-07-03 17:39:24
阅读次数:
190
最短路判断是否出现负环。
SPFA过的,以前用Bellman。那是好久之前跟着一群大神混过去的,都忘了题了。
现在更深刻的理解图了。
给n点,m条正权边,w条负权边。
正权边是无向的,负权边是单向的。
判断是否出现了负环。
用SPFA,当某个点n 次入队了之后,肯定出现了负权。
#include
#include
#include
#include
#incl...
分类:
其他好文 时间:
2014-07-03 16:19:42
阅读次数:
182
求来回最短路加起来最长的一条。
两次SPFA,然后选某个点的来回最长。(有向图)
Dijkstra+邻接矩阵 比较方便建立 反向图。
我用SPFA+2个邻接表(正图+反图),C++ 32ms。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
...
分类:
其他好文 时间:
2014-07-03 16:01:33
阅读次数:
173
多种方法,可以理解为最短路变形。
也可以当作最小生成树。
题意理解就很简单。
青蛙A到青蛙B之间距离中某一次跳的距离,选出最大的。
写了2个最短路的。SPFA 和 Dijkstra。
顺便熟悉一下最小生成树,也写个Kruskal 的。
SPFA:
#include
#include
#include
#include
#include
#include
#...
分类:
其他好文 时间:
2014-07-03 13:52:06
阅读次数:
146
类似于我上一篇解题报告。POJ 2253 Frogger。
也是最短路的变形,也可以当成生成树做。
2253 是求跳的路径中 权值最小的那一条。
而这道题1797 是求路径中 权值最大的那一条。
只需要把2253 中的dis[]初始赋INF,其他赋为0。然后dis[v]
d是某一边的大小。u出发点,v是到达点。
程序基本和 2253 一样。
#include
#include...
分类:
其他好文 时间:
2014-07-03 13:31:00
阅读次数:
193
最短路问题,我用的SPFA。
求出各个点的最短时间。
然后每条边的为 (d[u]+d[v]+len)/2 len 为此边长度。
然后找时间最长的。
#include
#include
#include
#include
#include
using namespace std;
int n,m;
struct lx
{
int v;
double t;
};
v...
分类:
其他好文 时间:
2014-07-02 11:34:13
阅读次数:
136