#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <queue>
#include <math.h>
#define inf 0x3f3f3f3f
using namespace std;
int map[][],v[],pre[];
int n,m;
int bfs(int s,int t)
{
memset(v,,sizeof(v));
memset(pre,-,sizeof(pre));
pre[s]=s;
queue<int>q;
q.push(s);
v[s]=;
while(!q.empty())
{
int tt=q.front();
q.pop();
for(int i=; i<=n; i++)
{
if(map[tt][i]&&v[i]==)
{
v[i]=;
pre[i]=tt;
q.push(i);
if(i==t)
{
return ;
}
}
}
}
return ;
}
int EK(int s,int t)
{
int ans=;
while(bfs(s,t)==)
{
int min1=inf;
for(int i=t; i!=s; i=pre[i])
{
if(min1>map[pre[i]][i])
{
min1=map[pre[i]][i];
}
}
for(int i=t; i!=s; i=pre[i])
{
map[pre[i]][i]-=min1;
map[i][pre[i]]+=min1;
}
ans+=min1;
}
return ans;
}
int main()
{
int T,x,y,z;
scanf("%d",&T);
for(int i=; i<=T; i++)
{
scanf("%d%d",&n,&m);
memset(map,,sizeof(map));
while(m--)
{
scanf("%d%d%d",&x,&y,&z);
map[x][y]+=z;
}
printf("Case %d: %d\n",i,EK(,n));
EK(,n);
}
return ;
}

#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <queue>
#include<algorithm>
#define inf 0x3f3f3f3f
using namespace std;
int n,m,tt;
struct node
{
    int x,y,c;
    int next;
}edge[10001];
int head[101],dis[101];
void init()
{
    memset(head,-1,sizeof(head));
    tt=0;
}
void add(int xx,int yy,int zz)
{
    edge[tt].x=xx;
    edge[tt].y=yy;
    edge[tt].c=zz;
    edge[tt].next=head[xx];
    head[xx]=tt++;
    edge[tt].x=yy;
    edge[tt].y=xx;
    edge[tt].c=0;
    edge[tt].next=head[xx];
    head[xx]=tt++;
}
int bfs(int s,int t)
{
     queue<int>q;
     memset(dis,-1,sizeof(dis));
     q.push(s);
     dis[s]=0;
     while(!q.empty())
     {
         int w=q.front();
         q.pop();
         for(int i=head[w];i!=-1;i=edge[i].next)
         {
             if(dis[edge[i].y]==-1&&edge[i].c>0)
             {
                 dis[edge[i].y]=dis[w]+1;
                 q.push(edge[i].y);
             }
         }
     }
    if(dis[t]>=0) return 1;
    return 0;
}
int dinic(int x,int maxt)
{
     int a;
     if(x==n) return maxt;
     for(int i=head[x];i!=-1;i=edge[head[x]].next)
     {
         if(dis[edge[i].y]==x+1&&edge[i].c>0&&(a==min(maxt,edge[i].c)))
         {
             ,mhgr
         }
     }
}
int main()
{
    int T,xx,yy,zz,ans;
    scanf("%d",&T);
    for(int i=1;i<=T;i++)
    {
        init();
        ans=0;
        scanf("%d%d",&n,&m);
        while(m--)
        {
            scanf("%d%d%d",&xx,&yy,&zz);
            add(xx,yy,zz);
        }
        while(bfs(1,n)==1)
        {
            ans+=dinic(1,inf);
        }
        printf("Case %d: %d\n",i,ans);
    }
    return 0;
}

HDU3549:Flow Problem(最大流入门EK)的更多相关文章

  1. [hdu3549]Flow Problem(最大流模板题)

    解题关键:使用的挑战程序设计竞赛上的模板,第一道网络流题目,效率比较低,且用不习惯的vector来建图. 看到网上其他人说此题有重边,需要注意下,此问题只在邻接矩阵建图时会出问题,邻接表不会存在的,也 ...

  2. Hdu3549 Flow Problem 2017-02-11 16:24 58人阅读 评论(0) 收藏

    Flow Problem Problem Description Network flow is a well-known difficult problem for ACMers. Given a ...

  3. Flow Problem(最大流模板)

    Flow Problem Time Limit: 5000/5000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tota ...

  4. HDU3549 Flow Problem 【最大流量】

    Flow Problem Time Limit: 5000/5000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Tot ...

  5. POJ1273:Drainage Ditches(最大流入门 EK,dinic算法)

    http://poj.org/problem?id=1273 Description Every time it rains on Farmer John's fields, a pond forms ...

  6. hdu-3549 Flow Problem---最大流模板题(dinic算法模板)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3549 题目大意: 给有向图,求1-n的最大流 解题思路: 直接套模板,注意有重边 传送门:网络流入门 ...

  7. hdu 3549 Flow Problem (最大流)

    裸最大流,做模板用 m条边,n个点,求最大流 #include <iostream> #include <cstdio> #include <cstring> #i ...

  8. HDU3549 Flow Problem(网络流增广路算法)

    题目链接. 分析: 网络流增广路算法模板题.http://www.cnblogs.com/tanhehe/p/3234248.html AC代码: #include <iostream> ...

  9. hdu 3549 Flow Problem 最大流 Dinic

    题目链接 题意 裸的最大流. 学习参考 http://www.cnblogs.com/SYCstudio/p/7260613.html Code #include <bits/stdc++.h& ...

随机推荐

  1. 开源跨境ERP - 小老板 Docker/Docker Compose一键部署

    先上部署成功后的截图,各个菜单点击均无报错 DockerCompose 包含: 1. 三个mysql5.7数据库 2. redis php会话存储+ memcached 3. 小老板php主程序 do ...

  2. ASR测试方法---字错率(WER)、句错率(SER)统计

    一.基础概念 1.1.语音识别(ASR) 语音识别(speech recognition)技术,也被称为自动语音识别(英语:Automatic Speech Recognition, ASR), 狭隘 ...

  3. vscode go开发主要插件

    • Colorization 代码着彩色 • Completion Lists 代码自动完成(使用gocode) • Snippets 代码片段 • Quick Info 快速提示信息(使用godef ...

  4. ASP.NET 静态化

    以前也说过页面静态化   但是说的好像不清楚 这次我用一个插件 URLRewriter  重写URL 先引用dll 然后再web.config中三步走 <configSections> & ...

  5. java_八大数据类型

    一.整型 1.byte  1个字节(8位--一个字节占8位)-128~127 2.short  2个字节  -32768~32767 3.int      4个字节(常用) 4.long   8个字节 ...

  6. vim文本编辑及文件查找应用4

    linux系统上的特殊权限 : 特殊权限有:SUID,SGID,STICKY 安全上下文: 1.进程以其发起者的身份运行:进程对文件的访问权限,取决于发此进程的用户的权限:进程是发起些进程用户的代理, ...

  7. Paper Reading:Deep Neural Networks for Object Detection

    发表时间:2013 发表作者:(Google)Szegedy C, Toshev A, Erhan D 发表刊物/会议:Advances in Neural Information Processin ...

  8. c#系统泛型委托

    Action<T> 无返回值的系统泛型委托 namespace ConsoleApp1 { public class UserInfo { public int Id { get; set ...

  9. CF1009F Dominant Indices——长链剖分优化DP

    原题链接 \(EDU\)出一道长链剖分优化\(dp\)裸题? 简化版题意 问你每个点的子树中与它距离为多少的点的数量最多,如果有多解,最小化距离 思路 方法1. 用\(dsu\ on\ tree\)做 ...

  10. flex布局详解

    1.背景介绍 传统的布局解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现. 2009年,W3C ...