比赛 20101224 评测结果 AWWWWWWWWW
题目名称 总流量 最终得分 10
用户昵称 郭乾乐 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2010-12-24 20:25:25
显示代码纯文本
#include<iostream>
#include<fstream>
#include <cstring>   
using namespace std;   
int c[101][101],f[101][101],n,a[20000];   
bool pan[101],pp=true;   
int re=0;   
void dfs(int x,int minn,int ji)   
{   
    int temp;   
    for(int j=1;j<=26&&x!=26&&pp;j++)   
        if(c[x][j]-f[x][j]>0&&!pan[j])   
        {   
            if(c[x][j]-f[x][j]<minn)   
                temp=c[x][j]-f[x][j];   
            else  
                temp=minn;   
            pan[j]=true;   
            a[ji+1]=j;   
            dfs(j,temp,ji+1);     
        }   
    if(x==26)   
    {   
        pp=false;   
        for(int j=1;j<ji;j++)   
        {   
            f[a[j]][a[j+1]]+=minn;   
            f[a[j+1]][a[j]]-=minn;   
        }   
        re+=minn;   
    }   
}   
  
int main()   
{   
    ifstream fin("tflow.in");
    ofstream fout("tflow.out");		
    int i,j,z;
    char x,y;	
    fin>>n;  
	for(j=1;j<=n;j++)   
	{   
            fin>>x>>y>>z;   
            c[x-64][y-64]=z; 
            f[x-64][y-64]=0;			
	}   
    int maxn=0;   
    do  
    {   
        memset(pan,false,sizeof(pan));   
        a[1]=1;   
        pan[1]=true;   
        pp=true;   
        dfs(1,9999999,1);   
        if(pp)   
            break;   
    }   
    while(true);   
    fout<<re;  
    return 0;   
}