POJ-1273-Drainage Ditches

来源:互联网 发布:淘宝商品链接怎么复制 编辑:程序博客网 时间:2024/04/16 12:55

赤裸裸的网络流- -

代码:

#include<stdio.h>#include<queue>#include<memory.h>using namespace std;int map[200][200],q[200];int BFS(int star,int end){    int flat[200];    int e;    queue<int>que;    memset(flat,0,sizeof(flat));    memset(q,-1,sizeof(q));    que.push(star);    flat[0]=1;    while(!que.empty())    {        e=que.front();        que.pop();        if(e==end)            return 1;        for(int i=0;i<=end;i++)            if(map[e][i]!=0&&flat[i]!=1)            {                que.push(i);                flat[i]=1;                q[i]=e;            }    }    return 0;}int main(){    int m,n;    int end;    int max;    int min;    while(scanf("%d%d",&m,&n)!=EOF)    {        max=0;        end=n-1;        memset(map,0,sizeof(map));        while(m--)        {            int i,j,c;            scanf("%d%d%d",&i,&j,&c);            map[i-1][j-1]+=c;        }        while(BFS(0,end))        {            int e;            min=100000000;            e=end;            while(q[e]!=-1)            {                if(min>map[q[e]][e])                    min=map[q[e]][e];                e=q[e];            }            max+=min;            e=end;            while(q[e]!=-1)            {                map[q[e]][e]-=min;                map[e][q[e]]+=min;                e=q[e];            }        }        printf("%d\n",max);    }}


原创粉丝点击