摘要: 最小费用最大流一般用邻接表来实现,因为邻接矩阵不能处理平行边等等;而一条有向边是要储存两条信息,无向图的话要拆成两条有向边处理,相当于变为4条边,这也是邻接矩阵不能做到的然后最小费用最大流的原理就不讲了,讲一下实现的要注意的问题和一些技巧1.用结构体数组来保存边,最好从下标0开始保存不要从下标1开始保存,因为增广的时候需要用到位运算,从下标1保存不利于位运算2.为了满足上面的位运算的要求,除了从下标0开始外,储存边的顺序也有讲究,以一条无向边做例子(u,v),cap,cost,flow=0; //一开始流量为0/****有向边u---->v****/add(i,u,v,cap,cost, 阅读全文
posted @ 2012-12-10 22:41 Titanium 阅读(1485) 评论(0) 推荐(1) 编辑
摘要: 最短路裸题啊,顶点数较多开不了邻接矩阵的,而且边数相对较少,稀疏图,用邻接表,写了个spfa和一个优先队列的dij,当做练手spfa#include <cstdio>#include <cstring>#include <queue>using namespace std;#define N 20010#define M 50010*2#define INF 0x3f3f3f3fstruct edge{ int u,v,w,next; }e[M];int first[N],d[N],vis[N];int n,m,s,t;void spfa(){ queue 阅读全文
posted @ 2012-12-10 20:17 Titanium 阅读(571) 评论(0) 推荐(0) 编辑