• USACO4.2.1 网络流最大流算法


    /*
    ID:hk945801
    TASK:ditch
    LANG:C++
    */
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    const int inf=10000001;
    struct node{
    	int c,f;
    }a[201][201];
    int p[201*201],d[201*201],pre[201];
    int main(){
    	int i,j,k,m,n;
    	int x;
    	freopen("ditch.in","r",stdin);
    	freopen("ditch.out","w",stdout);
    	cin>>m>>n;  
        for(i=1;i<=m;i++){
    	    int x,y,z;  
            scanf("%d%d%d",&x,&y,&z);                    
            a[x][y].c+=z;  
        } 
        int pd=1;
        while(pd){
    	    pd=0;
    	    int fi=0,l=1;
    	    d[1]=1;
    	    for(i=1;i<=n;i++)p[i]=0;  
            p[1]=1;  
            while(fi<l){  
                fi++;
            x=d[fi];
                for(i=2;i<=n;i++)
                    if(!p[i] && (a[x][i].c>a[x][i].f || a[i][x].f>0)){  
                        d[++l]=i;
                        p[i]=1;
                        pre[i]=x;
                        if(i==n){pd=1;break;}  
                    }         
                if(pd==1)break;  
            }  
            if(pd==0)break;  
            int min=inf;  
            x=n;  
            while(x!=1){  
                if(a[pre[x]][x].c>a[pre[x]][x].f&& a[pre[x]][x].c-a[pre[x]][x].f<min)  
                    min=a[pre[x]][x].c-a[pre[x]][x].f;             
                else if(a[x][pre[x]].f>0 && a[x][pre[x]].f<min)  
                    min=a[x][pre[x]].f;  
                x=pre[x];  
            }  
            x=n;  
            while(x!=1){  
                if(a[pre[x]][x].c>a[pre[x]][x].f)  
                    a[pre[x]][x].f+=min;              
                else if(a[x][pre[x]].f>0)  
                    a[x][pre[x]].f-=min;  
                x=pre[x];
            }
    	}
    	int ans=0;  
        for(i=2;i<=n;i++)  
            ans+=a[1][i].f;  
        cout<<ans<<endl;
    	return 0;
    }

  • 相关阅读:
    通过使用 SQL,可以为列名称和表名称指定别名(Alias)
    BETWEEN 操作符
    IN 操作符
    SQL 通配符
    LIKE 操作符
    TOP 子句
    DELETE 语句
    Update 语句
    INSERT INTO 语句
    IOS SWIFT 网络请求JSON解析 基础一
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7295415.html
Copyright © 2020-2023  润新知