zoukankan      html  css  js  c++  java
  • [网络流24题] 飞行员配对方案问题

    可能因为很长时间不敲网络流所以现在SB题都写得卡(关键是自己的板子里埋了不少坑考场上就崩掉了) 全当是复习吧
    二分图匹配裸题

    #include <bits/stdc++.h>
    using namespace std;
    
    const int N = 100005, MAXN = 100005;
    
    #define reset(x) memset(x,0,sizeof x)
    struct graph {
        int n,m,M,S,T,head[N],cur[N],dep[N],gap[N],q[N];
        long long ans;
        struct ed {
            int to,nxt,val;
        } edge[MAXN];
        void init(int n0,int m0,int S0,int T0) {
            n=n0,m=m0,S=S0,T=T0,M=1,reset(gap);
            reset(head),reset(cur),reset(dep),reset(q);
        }
        void mk(int u,int v,int w) {
            edge[++M]=(ed) {v,head[u],w},head[u]=M;
        }
        void make(int u,int v,int w) {
            mk(u,v,w); mk(v,u,0);
        }
        int dfs(int u,int mx) {
            if (u==T)
                return mx;
            int num=0,f;
            for (int &i=cur[u],v; i; i=edge[i].nxt)
                if (dep[v=edge[i].to]==dep[u]-1 && (f=edge[i].val))
                    if (edge[i].val-=(f=dfs(v,min(mx-num,f))), edge[i^1].val+=f, (num+=f)==mx)
                        return num;
            if (!--gap[dep[u]++])
                dep[S]=n+1;
            return ++gap[dep[u]],cur[u]=head[u],num;
        }
        void solve() {
            for (int i=1; i<=n; ++i)
                cur[i]=head[i];
            ans=0;
            for (gap[0]=n; dep[S]<=n; ans+=dfs(S,0x7fffffff));
        }
    } g;
    
    int n,m,t1,t2;
    
    int main()
    {
        cin>>t1>>t2;
        n=t2; m=t1-t2;
        g.init(n+m+2,0,n+m+1,n+m+2);
        while(cin>>t1>>t2) g.make(t1,t2,1);
        for(int i=1;i<=n;i++) g.make(n+m+1,i,1);
        for(int i=1;i<=m;i++) g.make(i+n,n+m+2,1);
        g.solve();
        cout<<g.ans<<endl;
    }
    
  • 相关阅读:
    在一个tomcat中配置多个tomcat服务器 111
    同一个tomcat部署多个项目11
    Tomcat部署多个项目及相关配置
    同一个tomcat部署多个项目
    Tomcat下部署多个项目
    Linux环境下在Tomcat上部署JavaWeb工程
    Linux命令详解之—pwd命令
    PWD
    C语言内存分配
    每天小练笔10-小和尚挑水(回溯法)
  • 原文地址:https://www.cnblogs.com/mollnn/p/11713758.html
Copyright © 2011-2022 走看看