zoukankan      html  css  js  c++  java
  • 模板

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <queue>
    
    const int N=1e4+5,M=2e5+5;
    int n,m,s,t,tot=1,lnk[N],ter[M],nxt[M],val[M],dep[N],cnr[N];
    
    void add(int u,int v,int w) {
        ter[++tot]=v,nxt[tot]=lnk[u],lnk[u]=tot,val[tot]=w;
    }
    void addedge(int u,int v,int w) {
        add(u,v,w),add(v,u,0);
    }
    int bfs(int s,int t) {
        memset(dep,0,sizeof(dep));
        memcpy(cnr,lnk,sizeof(lnk));
        std::queue<int> q;
        q.push(s),dep[s]=1;
        while(!q.empty()) {
            int u=q.front(); q.pop();
            for(int i=lnk[u];i;i=nxt[i]) {
                int v=ter[i];
                if(val[i]&&!dep[v]) q.push(v),dep[v]=dep[u]+1;
            }
        }
        return dep[t];
    }
    int dfs(int u,int t,int flow) {
        if(u==t) return flow;
        int ans=0;
        for(int i=cnr[u];i&&ans<flow;i=nxt[i]) {
            cnr[u]=i;
            int v=ter[i];
            if(val[i]&&dep[v]==dep[u]+1) {
                int x=dfs(v,t,std::min(val[i],flow-ans));
                if(x) val[i]-=x,val[i^1]+=x,ans+=x;
            }
        }
        if(ans<flow) dep[u]=-1;
        return ans;
    }
    int dinic(int s,int t) {
        int ans=0;
        while(bfs(s,t)) {
            int x;
            while((x=dfs(s,t,1<<30))) ans+=x;
        }
        return ans;
    }
    int main() {
        scanf("%d%d%d%d",&n,&m,&s,&t);
        while(m--) {
            int u,v,w;
            scanf("%d%d%d",&u,&v,&w);
            addedge(u,v,w);
        }
        printf("%d
    ",dinic(s,t));
        return 0;
    }

    http://old.orzsiyuan.com/articles/algorithm-Network-Flow-Minimum-Cut/

  • 相关阅读:
    <c:forEach>详解
    JSP基本_JSTL
    鼠标显示效果的形状设置
    linux7.3+nginx1.1+tomcat8.5 搭建负载均衡
    安装zabbix
    Centos7 systemctl使用
    Centos7 yum安装 Lnmp以及Lamp
    Centos7 LAMP环境下安装zabbix3.0
    centos 7.0 搭建LAMP环境
    mysql 配置参数详解
  • 原文地址:https://www.cnblogs.com/Yinku/p/10618449.html
Copyright © 2011-2022 走看看