hdoj 1532 Drainage Ditches(最大网络流)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1532
思路分析:问题为最大网络流问题,给定一个有向图,需要求解该有向图的最大网络流,使用EdmondsKarp算法求解;
需要注意输入的边中可能有重边的存在;
代码如下:
#include <queue>
#include <vector>
#include <cstdio>
#include <climits>
#include <cstring>
#include <iostream>
using namespace std; const int MAX_N = + ;
int cap[MAX_N][MAX_N], flow[MAX_N][MAX_N];
int a[MAX_N], p[MAX_N]; inline int Min(int a, int b) { return a < b ? a : b; }
int EdmondsKarp(int ver_num)
{
queue<int> q;
int max_flow = ; memset(flow, , sizeof(flow));
for (;;)
{
memset(a, , sizeof(a));
a[] = INT_MAX;
q.push();
while (!q.empty())
{
int u = q.front();
q.pop();
for (int v = ; v <= ver_num; ++v)
{
if (!a[v] && cap[u][v] > flow[u][v])
{
p[v] = u;
q.push(v);
a[v] = Min(a[u], cap[u][v] - flow[u][v]);
}
}
}
if (a[ver_num] == ) break;
for (int u = ver_num; u != ; u = p[u])
{
flow[p[u]][u] += a[ver_num];
flow[u][p[u]] -= a[ver_num];
}
max_flow += a[ver_num];
}
return max_flow;
} int main()
{
int road_num, ver_num; while (scanf("%d %d", &road_num, &ver_num) != EOF)
{
int ver_1, ver_2, capa; memset(cap, , sizeof(cap));
for (int i = ; i < road_num; ++i)
{
scanf("%d %d %d", &ver_1, &ver_2, &capa);
cap[ver_1][ver_2] += capa;
}
int ans = EdmondsKarp(ver_num);
printf("%d\n", ans);
}
return ;
}
hdoj 1532 Drainage Ditches(最大网络流)的更多相关文章
- HDU 1532 Drainage Ditches (网络流)
A - Drainage Ditches Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64 ...
- hdoj 1532 Drainage Ditches【最大流模板题】
Drainage Ditches Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDU 1532 Drainage Ditches (最大网络流)
Drainage Ditches Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) To ...
- HDU 1532 Drainage Ditches 分类: Brush Mode 2014-07-31 10:38 82人阅读 评论(0) 收藏
Drainage Ditches Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- POJ 1273 Drainage Ditches(网络流,最大流)
Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover ...
- POJ1273 Drainage Ditches (网络流)
Drainage Ditches Time Limit: 1000MS Memor ...
- POJ_1273 Drainage Ditches 【网络流】
一.题面 Drainage Ditches 二.分析 网络流的裸题. 1 Edmonds-Karp算法 求解网络流其实就是一个不断找增广路,然后每次找到一条增广路后更新残余网络的一个过程. EK算法主 ...
- POJ 1273 || HDU 1532 Drainage Ditches (最大流模型)
Drainage DitchesHal Burch Time Limit 1000 ms Memory Limit 65536 kb description Every time it rains o ...
- poj 1273 && hdu 1532 Drainage Ditches (网络最大流)
Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 53640 Accepted: 2044 ...
随机推荐
- 穿透的 div ( pointer-events )
pointer-events 是一個滿有趣的 CSS3 屬性,雖然主要是針對 SVG ,但其中幾個屬性應用在 div 上也是頗有意思.顧名思義,這是一個針對滑鼠事件的屬性,預設值為 auto,若值為 ...
- The type javax.servlet.http.HttpServletRequest cannot be resolved.
The type javax.servlet.http.HttpServletRequest cannot be resolved. It is indirectly referenced from ...
- 前自加(++a)与后自加(a++)的差别
自加是自己加1的操作.比如a++ 是a+1 ,变量a变成了 a+1的值. 如果是简单的只做 a++:或者++a的语句,效果是一样的. 但是如果嵌入到复杂的语句中,比如 b = a++: 和 b = + ...
- Java的函数与函数重载
关于Java的函数与函数重载 关于Java的函数与函数重载 1. 函数 假设有一个游戏程序,程序在运行过程中,要不断地发射炮弹.发射炮弹的动作都需要使用一段百行左右的程序代码,在每次发射炮弹的地方都要 ...
- netty中实现客户端首次连接绑定并非每次read检查的方法
需求场景 客户端第一次连接时,将客户端存起来 重写 ChannelHandlerAdapter 的 handlerAdded 方法
- android 中获取网络状态、判断3G、2G、wifi网络、判断wifi是否打开、获取本机地址、获取本机串号IMEI整理
代码如下:package com.android.xym; import java.io.IOException; import java.net.HttpURLConnection; import ...
- cocos2dx 字体BMFont,Atlas
为了更加个性化,系统提供的字体,有时候没法满足我们的要求,所以cocos2dx提供了自定义字体控件. 分别是CCLabelBMFont和CCLabelAtlas,先看BMFont的效果 CCLabel ...
- 害人的VS2008,manifest导致“应用程序配置不正确,应用程序未能启动”
在VC++2008的项目中,如何显示地指定要使用的C++库的版本? 开发环境:VS2008 SP1 + Win2003 SP2 因为我的VS2008安装了SP1补丁,所以有了9.0.3 ...
- HDU 3501 Calculation 2
题目大意:求小于n的与n不互质的数的和. 题解:首先欧拉函数可以求出小于n的与n互质的数的个数,然后我们可以发现这样一个性质,当x与n互质时,n-x与n互质,那么所有小于n与n互质的数总是可以两两配对 ...
- cuda核函数再调用核函数,多层并行
#include <stdio.h> __global__ void childKernel(int i) { int tid = blockIdx.x*blockDim.x+thread ...