博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 1273 Drainage Ditches 网络流最大流基础
阅读量:6480 次
发布时间:2019-06-23

本文共 3317 字,大约阅读时间需要 11 分钟。

 

Drainage Ditches
Time Limit: 1000MS   Memory Limit: 10000K
Total Submissions: 59176   Accepted: 22723

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 quite a long time to regrow. Thus, Farmer John has built a set of drainage ditches so that Bessie's clover patch is never covered in water. Instead, the water is drained to a nearby stream. Being an ace engineer, Farmer John has also installed regulators at the beginning of each ditch, so he can control at what rate water flows into that ditch.
Farmer John knows not only how many gallons of water each ditch can transport per minute but also the exact layout of the ditches, which feed out of the pond and into each other and stream in a potentially complex network.
Given all this information, determine the maximum rate at which water can be transported out of the pond and into the stream. For any given ditch, water flows in only one direction, but there might be a way that water can flow in a circle.

Input

The input includes several cases. For each case, the first line contains two space-separated integers, N (0 <= N <= 200) and M (2 <= M <= 200). N is the number of ditches that Farmer John has dug. M is the number of intersections points for those ditches. Intersection 1 is the pond. Intersection point M is the stream. Each of the following N lines contains three integers, Si, Ei, and Ci. Si and Ei (1 <= Si, Ei <= M) designate the intersections between which this ditch flows. Water will flow through this ditch from Si to Ei. Ci (0 <= Ci <= 10,000,000) is the maximum rate at which water will flow through the ditch.

Output

For each case, output a single integer, the maximum rate at which water may emptied from the pond.

Sample Input

5 41 2 401 4 202 4 202 3 303 4 10

Sample Output

50 //手打dinic,从我做起!
//qscqesze #include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
typedef long long ll; using namespace std; //freopen("D.in","r",stdin); //freopen("D.out","w",stdout); #define sspeed ios_base::sync_with_stdio(0);cin.tie(0) #define maxn 10000 #define eps 1e-9 const int inf=0x7fffffff;   //无限大 //************************************************************************************** struct edge {     int to,cap,rev; }; vector
g[maxn]; int level[maxn]; int iter[maxn]; void add_edge(int from,int to,int cap) {     g[from].push_back((edge){to,cap,g[to].size()});     g[to].push_back((edge){from,0,g[from].size()-1}); } void bfs(int s) {     memset(level,-1,sizeof(level));     queue
que;     level[s]=0;     que.push(s);     while(!que.empty())     {         int v=que.front();         que.pop();         for(int i=0;i
0&&level[e.to]<0)             {                 level[e.to]=level[v]+1;                 que.push(e.to);             }         }     } } int dfs(int v,int t,int f) {     if(v==t)return f;     for(int &i=iter[v];i
0&&level[v]
0)             {                 e.cap-=d;                 g[e.to][e.rev].cap+=d;                 return d;             }         }     }     return 0; } int max_flow(int s,int t) {     int flow=0;     while(1)     {         bfs(s);         if(level[t]<0)return flow;         memset(iter,0,sizeof(iter));         int f;         while((f=dfs(s,t,inf))>0)             flow+=f;     } } int main() {     int n,m;     while(cin>>n>>m)     {         for(int i=0;i<=m;i++)             g[i].clear();         int a,b,c;         for(int i=0;i
>a>>b>>c;             add_edge(a,b,c);         }         cout<
<

 

转载地址:http://tffuo.baihongyu.com/

你可能感兴趣的文章
mvc中枚举的使用和绑定枚举值到DropDownListFor
查看>>
多目标跟踪的评价指标
查看>>
python 生成器
查看>>
HTTPS(SSL)详解以及PHP调用方法
查看>>
突发小事件,USB接口问题
查看>>
Nginx负载均衡配置实例详解
查看>>
L1-009. N个数求和
查看>>
实参传递不当导致的运行时错误
查看>>
sqlserver 批量删除存储过程(转)
查看>>
自建型呼叫中心
查看>>
Inno setup中定制安装路径
查看>>
要懂得对你的老板好一点!
查看>>
HDU5139:Formula(找规律+离线处理)
查看>>
visio如何让动态连接线的单箭头变成双箭头?
查看>>
poj 1273 Drainage Ditches 网络流最大流基础
查看>>
Bash: how to check if a process id (PID) exists
查看>>
Mirantis Fuel fundations
查看>>
启动Tomcat一闪而过——分析及解决过程
查看>>
Android intent action大全
查看>>
使用 Flash Builder 的 Apple iOS 开发过程
查看>>