zoukankan      html  css  js  c++  java
  • hdu 3549 Flow Problem (最大流)

    裸最大流做模板用

    m条边,n个点,求最大流

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <queue>
    #include <algorithm>
    
    using namespace std;
    
    const int N = 20;
    const int INF = 0x7fffffff;
    
    int flow[N];
    int cap[N][N];
    int pre[N];
    
    queue<int>q;
    
    int m, n;
    
    int BFS(int src, int des)
    {
        while (!q.empty()) q.pop();
        for (int i = 1; i <= n; ++i) pre[i] = -1;
        flow[src] = INF;
        pre[src] = 0;
        q.push(src);
        while (!q.empty()) {
            int index = q.front();
            q.pop();
            if (index == des) break;
            for (int i = 1; i <= n; ++i) {
                if (pre[i] == -1 && cap[index][i] > 0) {
                    pre[i] = index;
                    flow[i] = min(cap[index][i], flow[index]);
                    q.push(i);
                }
            }
        }
        if (pre[des] == -1) return -1;
        return flow[des];
    }
    
    int maxFlow(int src, int des)
    {
        int ans = 0;
        int in = 0;
        while ((in = BFS(src, des)) != -1) {
            int k = des;
            while (k != src) {
                int last = pre[k];
                cap[last][k] -= in;
                cap[k][last] += in;
                k = last;
            }
            ans += in;
        }
        return ans;
    }
    
    int main()
    {
        int t;
        int i, k;
        scanf("%d", &t);
        for (k = 1; k <= t; ++k) {
            memset(cap, 0, sizeof cap);
            memset(flow, 0, sizeof flow);
            scanf("%d%d", &n, &m);
            for (i = 0; i < m; ++i) {
                int a, b, c;
                scanf("%d%d%d", &a, &b, &c);
                cap[a][b] += c;
            }
            printf("Case %d: %d
    ", k, maxFlow(1, n));
        }
        return 0;
    }
  • 相关阅读:
    关于ADO.NET参数化查询的提问
    PushSharp的使用
    关于WCF的一些知识点
    关于Expression表达式树的拼接
    设计模式-策略模式
    jq图片展示插件highslide.js简单dom
    JS实现手机访问pc网址自动跳转到wap网站
    CARVARS 圆形进度条
    vue-router的几种用法
    vscode 超好用的前端插件
  • 原文地址:https://www.cnblogs.com/wenruo/p/4704878.html
Copyright © 2011-2022 走看看