zoukankan      html  css  js  c++  java
  • pku Drainage Ditches 简单最大流 直接套模板 注意可能有重边

    #include<stdio.h>
    #include
    <string.h>
    #define MAX 201
    int m,n; //结点数
    int maxflow; //最大流
    int mat[MAX][MAX],pre[MAX],p[MAX];
    int queue[MAX*MAX];
    int min(int a,int b)
    {
    if(a<b) return a;
    else return b;
    }
    void Edmonds_Karp(int s,int t)
    {
    while(1)
    {
    p[s]
    =99999999;
    memset(pre,
    0,sizeof(pre));
    int head=0,tail=1;
    queue[
    0]=s;
    while(head!=tail)
    {
    int i=queue[head++];
    for(int j=1;j<=m;j++)
    {
    if(j!=i && !pre[j] && mat[i][j]>0)
    {
    p[j]
    =min(p[i],mat[i][j]);
    queue[tail
    ++]=j;
    pre[j]
    =i;
    }
    }
    }
    if(pre[t]==0) break;
    int i=t;
    while(i!=s)
    {
    int j=pre[i];
    mat[j][i]
    -=p[t];
    mat[i][j]
    +=p[t];
    i
    =j;
    }
    maxflow
    +=p[t];
    }
    }
    int main()
    {
    int i;
    int a,b,c;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
    maxflow
    =0;
    memset(mat,
    0,sizeof(mat));
    for(i=0;i<n;i++)
    {
    scanf(
    "%d%d%d",&a,&b,&c);
    mat[a][b]
    +=c;
    }
    Edmonds_Karp(
    1,m);
    printf(
    "%d\n",maxflow);
    }
    return 0;
    }
  • 相关阅读:
    浅谈最长上升子序列(LIS)
    浅谈树链剖分
    数字计数
    windy数
    骑士(树形dp)
    旅游规划
    皇宫看守
    k8s安装报错
    linux文件夹存储潜规则
    搭建覆盖率测试环境
  • 原文地址:https://www.cnblogs.com/ACAC/p/1737816.html
Copyright © 2011-2022 走看看