设为首页 加入收藏

TOP

hdu 1532 Drainage Ditches(最大流)
2015-11-21 01:59:39 来源: 作者: 【 】 浏览:5
Tags:hdu 1532 Drainage Ditches 最大

题目:

链接:点击打开链接

题意:

求最大流速。

思路:

Edmond_karp就行。

代码:

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       using namespace std; #define INF 100000000 const int N = 220; int cap[N][N],flow[N][N]; int a[N]; int n,m; int s,e,c; void edmonds_karp(int s,int t) { queue
      
        q; memset(flow,0,sizeof(flow)); int f = 0; int p[N]; for(;;) { memset(a,0,sizeof(a)); a[s] = INF; q.push(s); while(!q.empty()) { int u = q.front(); q.pop(); for(int v=1; v<=n; v++) { if(!a[v] && cap[u][v] > flow[u][v]) { p[v] = u; q.push(v); a[v] = a[u] < cap[u][v] - flow[u][v] ? a[u] : cap[u][v] - flow[u][v]; } } } if(a[t] == 0) break; for(int u=t; u!=s; u=p[u]) { flow[p[u]][u] += a[t]; flow[u][p[u]] += a[t]; } f += a[t]; } printf("%d\n",f); } int main() { //freopen("input.txt","r",stdin); while(scanf("%d%d",&n,&m) != EOF) { memset(cap,0,sizeof(cap)); for(int i=0; i
        
        

 -------------------------------------------------------------------------------- 
        

收获:

------>增广路算法,Edmond_karp模板:

queue
         
           q;
    memset(flow,0,sizeof(flow));
    int f = 0;
    int p[N];
    for(;;)
    {
        memset(a,0,sizeof(a));
        a[s] = INF;
        q.push(s);
        while(!q.empty())
        {
            int u = q.front();
            q.pop();
            for(int v=1; v<=n; v++)
            {
                if(!a[v] && cap[u][v] > flow[u][v])
                {
                    p[v] = u;
                    q.push(v);
                    a[v] = a[u] < cap[u][v] - flow[u][v] ? a[u] : cap[u][v] - flow[u][v];
                }
            }
        }
        if(a[t] == 0)
            break;
        for(int u=t; u!=s; u=p[u])
        {
            flow[p[u]][u] += a[t];
            flow[u][p[u]] += a[t];
        }
        f += a[t];
    }
         

------------------------------------------------------------------

战斗,从不退缩;奋斗,永不停歇~~~~~~~~~~~~~


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇UVA 10560 - Minimum Weight(数论) 下一篇POJ 3261 Milk Patterns(后缀数组)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: