[转载 ]POJ 1273 最大流模板】的更多相关文章

转载 百度文库花了5分下的 不过确实是自己需要的东西经典的最大流题POJ1273 ——其他练习题 POJ3436 . 题意描述: 现在有m个池塘(从1到m开始编号,1为源点,m为汇点),及n条水渠,给出这n条水渠所连接的池塘和所能流过的水量,求水渠中所能流过的水的最大容量.一道基础的最大流题目.但是模板小心使用,目前只是求单源点的最大流. 参考数据: 输入: 5 4 1 2 40 1 4 20 2 4 20 2 3 30 3 4 10 输出: 50 程序实现: 增广路算法Edmonds_Karp…
找了好久这两个的区别...UVA820 WA了 好多次.不过以后就做模板了,可以求任意两点之间的最大流. UVA 是无向图,因此可能有重边,POJ 1273是有向图,而且是单源点求最大流,因此改模板的时候注意一下. 而且我居然犯了更愚蠢的错误,以为重边的时候需要选最大的,正解应该是累加.... #include<stdio.h> #include<queue> #include<string.h> #define INF 999999 using namespace s…
#include<stdio.h> #include<string.h> #define N 300 #define inf 0x7fffffff #include<queue> using namespace std; struct node {   int u,v,w,next; }bian[N*4]; int head[N],yong,d[N],s,t; void addedge(int u,int v,int w) {    bian[yong].u=u;  …
题目链接:http://poj.org/problem?id=1273 a.EK算法:(Edmond-Karp): 用BFS不断找增广路径,当找不到增广路径时当前流量即为最大流. b.dinic算法:不断找最短路. 题意:现在有m个池塘(从1到m开始编号,1为源点,m为汇点),及n条水渠,给出这n条水渠所连接的池塘和所能流过的水量,求水渠中所能流过的水的最大容量. //http://blog.csdn.net/huzhengnan/article/details/7766446一个写的特别好的博…
题意:1是源点,m是汇点,求出来最大流量,没什么好说的就是练习最大流的模板题 ************************************************************** 先用Edmonds-Karp的算法做一下试试吧重边贡献了 1W,要加上所有的重边才算是两点间最大流量 *************************************************************************************************…
明天再拍一遍 #include <iostream> #include <queue> using namespace std; ; const int INF = 0x7FFFFFFF; int n,m,map[N][N],path[N],flow[N],start,end; queue<int> q; int bfs() { int i,t; while(!q.empty()) q.pop(); memset(path,-,sizeof(path)); path[s…
POJ 1273给出M条边,N个点,求源点1到汇点N的最大流量. 本文主要就是附上dinic的模板,供以后参考. #include <iostream> #include <stdio.h> #include <algorithm> #include <queue> #include <string.h> /* POJ 1273 dinic算法模板 边是有向的,而且存在重边,且这里重边不是取MAX,而是累加和 */ using namespace…
Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 53640   Accepted: 20448 Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover patch. This means that the clover is covered by…
很巧妙的思想 转自:http://www.cnblogs.com/kuangbin/archive/2012/08/21/2649850.html 本题能够想到用最大流做,那真的是太绝了.建模的方法很妙! 题意就是有N头牛,F个食物,D个饮料. N头牛每头牛有一定的喜好,只喜欢几个食物和饮料. 每个食物和饮料只能给一头牛.一头牛只能得到一个食物和饮料. 而且一头牛必须同时获得一个食物和一个饮料才能满足.问至多有多少头牛可以获得满足. 最初相当的是二分匹配.但是明显不行,因为要分配两个东西,两个东…
题目大概意思是,有N条水沟和M个水池,问从第一个水池到最后一个水池在同一时间内能够流过多少水第一行有两个整数N,M接下来N行,每行有3个整数,a,b,c,代表从a到b能够流c单位的水超级模板题,一个有向图,源点为1,汇点为M,套最大流模板就行了 我就通过这水题理解EK的... #include<cstdio> #include<cstring> #include<iostream> #include<queue> #include<climits>…
图论算法-最小费用最大流模板[EK;Dinic] EK模板 const int inf=1000000000; int n,m,s,t; struct node{int v,w,c;}; vector<node> map[10010]; int flow[10010][10010]; bool inq[10010]; int d[10010]; int pre[10010],pref[10010]; int minc,maxf; int main() { cin>>n>>…
ZOJ_2314_Reactor Cooling_有上下界可行流模板 The terrorist group leaded by a well known international terrorist Ben Bladen is buliding a nuclear reactor to produce plutonium for the nuclear bomb they are planning to create. Being the wicked computer genius of…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1532 最大流模板题: EK:(复杂度为n*m*m); #include<stdio.h> #include<string.h> #include<queue> #include<algorithm> using namespace std; #define INF 0xfffffff #define N 220 int maps[N][N], pre[N], a…
Matrix Again Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 102400/102400 K (Java/Others)Total Submission(s): 4255    Accepted Submission(s): 1233 Problem Description Starvae very like play a number game in the n*n Matrix. A positive integer…
Matrix Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2485    Accepted Submission(s): 1314 Problem Description Yifenfei very like play a number game in the n*n Matrix. A positive integer number…
最大流模板成为另一个被攻克的模板题. 今天QDC给我讲了一下Dinic,感觉很好懂.于是为了巩固就把这道题A掉了. 核心思想就是不断BFS分层,然后不断DFS找增广路.找不到之后就可以把答案累加输出了. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cctype> inline long long read(){ ,f=; ch…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4292 题意:水和饮料,建图跑最大流模板. 我用的是学长的模板,最然我还没有仔细理解,不过这都不重要直接贴就行了. 下面是AC代码,以后就当做最大流的模板来用了. 代码: #include<cstdio> #include<iostream> using namespace std; const int oo=1e9; ; ; int node,src,dest,edge; int ve…
传送门 这里是Ford-Fulkerson写的最大流模板 #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <string> #include <vector> #include <map> #include <set> #include <queue> #include &l…
https://www.luogu.org/problem/P3381 题目描述 如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用. 输入格式 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行包含四个正整数ui.vi.wi.fi,表示第i条有向边从ui出发,到达vi,边权为wi(即该边最大流量为wi),单位流量的费用为fi. 输出格式 一行,包含两个整数,依次为最大流量和…
模板从  这里   搬运,链接博客还有很多网络流题集题解参考. 最大流模板 ( 可处理重边 ) ; const int INF = 0x3f3f3f3f; struct Edge { int from,to,cap,flow; Edge(){} Edge(int from,int to,int cap,int flow):from(from),to(to),cap(cap),flow(flow){} }; struct Dinic { int n,m,s,t; //结点数,边数(包括反向弧),源…
Sliding Window POJ - 2823 单调队列模板题 题意 给出一个数列 并且给出一个数m 问每个连续的m中的最小\最大值是多少,并输出 思路 使用单调队列来写,拿最小值来举例 要求区间最小值 就是维护一个单调递增的序列 对于样例 8 3 1 3 -1 -3 5 3 6 7 我们先模拟一遍 1.队列为空 1 进队 队列:1 2.3>队尾元素 3 进队 队列: 1 3 3.-1小于队尾元素,一直从尾部出队知道找到比-1小的元素或者队列为空 队列:-1 当队列中元素大于m的时候从队头删…
题意: 有\(n\)个数\(a_1\cdots a_n\),现要你给出\(k\)个不相交的非降子序列,使得和最大. 思路: 费用流建图,每个点拆点,费用为\(-a[i]\),然后和源点连边,和后面非降的数连边,源点和超级源点连一条容量\(k\)的边,跑费用流. 用\(spfa\)费用流\(TLE\),这里因为不会出现负环,所以用\(Dijkstra\)优化. 代码: /******* dijkstra优化费用流模板 *******/ //不能有负环 #include<functional> /…
题目链接:http://poj.org/problem?id=1273 Time Limit: 1000MS Memory Limit: 10000K Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover patch. This means that the clover is covered by water for awhile and takes…
http://poj.org/problem?id=1273 这道题很值得反思,弄了一下午,交上去先是一直编译错误,而在本地运行没有问题, 原因可能是oj的编译器版本老旧不支持这样的写法 G[from].push_back((edge){to,cap,G[to].size()}); G[to].push_back((edge){from,0,G[from].size() - 1}); 这两句交上去是不能通过的,不知道网上很多人这样子贴出代码是怎样通过的(‘白书’的模板有问题的) 如果是照着‘白书…
最近在换代码布局,因为发现代码布局也可以引起一个人的兴趣这个方法是算法Edmonds-Karp 最短增广路算法,不知道的话可以百度一下,基于Ford-Fulkerson算法的基础上延伸的 其实我不是很透彻的领悟这个算法的精髓,只知道怎样实现,现在的任务就是多刷几道题,见识见识题型,就可以更透彻领悟为什么这么做,之后再拐回来研究算法,这样就可以学习和实践相结合! 详解 : 就是每次广搜后都让走过的边减去这条通路的最小的通路,逆向通路加上这条通路的最小通路,也就是最大容纳量,形成新的通路之后就记录最…
#include<cstdio> #include<iostream> #include<cstring> #include<queue> #define INF 9999999 #define M 330 using namespace std; int maxflow,pre[M],map[M][M],n,m; void Flow(int start,int end) { ) { queue<int> p; int minflow=INF;…
#include<cstdio> #include<algorithm> #include<cstring> #include<queue> #define N 250 #define M 250 #define INF 100000000 using namespace std; int head[N],cur[N],lev[N],ecnt=1,S,T,n,m; queue <int> q; struct adj { int nxt,v,w;…
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n, m, S, T; ;//点数的最大值 ;//边数的最大值 const int INF = 0x3f3f3f3f; struct Edge { int to,next,cap,flow; } edge[MAXM]; //注意是MAXM int tol; int head[MAXN]; void init()…
http://poj.org/problem?id=1273 Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 62708   Accepted: 24150 Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover patch. This means…
题目链接:http://poj.org/problem?id=1273 Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover patch. This means that the clover is covered by water for awhile and takes quite a long time to regrow. Thus, Farmer John has…