网络流
acmer_zp
这个作者很懒,什么都没留下…
展开
-
最小费用最大流(拆边)
题目大概意思是,有N个城市M条边,要从1城市到N城市运送K的物品,求最少花费,每个边有一个系数ai花费的钱是ai*这条边上运送物资数的平方,比如在系数为3的边上运送了2的物品,则需要3*2*2的花费; 思路:由于每条边的容量不超过5,所以可以把每一条边拆成容量条流量为1的边,他们的花费分别为1*ai,3*ai,5*ai,7*ai,9*ai; 花费依次递增,然后每次找的最短路都是最小的,前几次的加原创 2016-11-16 20:04:58 · 1124 阅读 · 0 评论 -
网络最大流SAP算法
#include<cstdio>//拆点 将1~n的女生每个拆成两个分别为n+1到2*n,坏女生连的是和自己关系不好的男生#include<cstring>#include<algorithm>#include<iostream>using namespace std;const int INF=0x7fffffff;int f[100010],n,m,p,k,cont,arr[1010原创 2016-11-01 20:04:57 · 291 阅读 · 0 评论 -
网络流EK算法
#include#include#include#include#include#define INF 0x3f3f3f3fusing namespace std;int x[510][510],n,m;//存容量struct zp//标号{ int head;//上一个节点 int value;//最多传来的流量} w[1010];int maxriver(原创 2016-10-18 19:49:50 · 409 阅读 · 0 评论 -
最小费用流
单向图#include<cstdio>//每次找费用的最短路,更新残留网络图直到找不到最短路为止#include<cstring>//最大费用 权值取负值 结果取负值#include<iostream>#include<algorithm>#include<queue>using namespace std;const int inf=0x3f3f3f3f;struct Node原创 2016-11-12 22:34:53 · 1569 阅读 · 0 评论 -
最小割最小割边
#include <cstdio>//最小割,图的割边,割断后无法从源点到汇点,最小割边的容量和为该图的最大流;#include <cstring>//最大点权独立和=所有点的权值和-最小割#include <algorithm>//点即是边,拆点,拆边#include <iostream>#include <queue>using namespace std;#define LL lo原创 2016-11-20 16:06:55 · 1443 阅读 · 0 评论 -
dinic网络最大流
#include#include#include#include#includeusing namespace std;const int inf=0x7fffffff;int n,m,t,cnt;struct zp{ int u,v,w,Next;}Map[1000010];int dis[1010],head[1010];void add(int u原创 2016-10-18 18:30:29 · 288 阅读 · 0 评论