Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
第一道 最大流 哈哈#include<stdio.h> #include<cstring> #define MN 202 #define MZ 10000001 #define min(x,y) (((x)<(y))?(x):(y)) int c[MN][MN],tmpf,flow,total ; bool bvisit[MN] ; int n,m ; bool Search( int x ){ bvisit[x] = true ; if( x == n ){ total += flow ; return true; } for( int y = 1; y <= n ; y ++ ) if( c[x][y] > 0 && !bvisit[y] ){ tmpf = flow ; flow = min(flow,c[x][y] ); if( Search(y) ){ c[x][y] -= flow ; c[y][x] += flow ; return true ; } flow = tmpf ; } return false ; } int main(){ int x,y,value ; freopen("in.txt","r",stdin) ; while( scanf("%d%d",&m,&n)!=EOF ){ memset(c,0,sizeof(c)) ; total = 0 ; while(m--){ scanf("%d%d%d",&x,&y,&value) ; if( x!= y )c[x][y] += value; } while(1){ flow = MZ ; memset(bvisit,false,sizeof(bvisit)) ; if( Search(1) == false )break; } printf("%d\n",total) ; } return 0 ; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator