POJ1273 最大流模板题_Edmonds_Karp_kk303的博客-程序员秘密

技术标签: 网络  网络流  network  

 赤果果的网络流...模板题...唯一要留意的是一条边可能会给出多次容量..所以每次都要加起来才是这条边的流量...用Edmonds_Karp写的:

/*
    POJ1273 最大流模板题. Edmonds_Karp  
*/
#include<iostream>
#include<queue>
using namespace std;
queue<int> Myqueue;
int NumOfPoint,NumOfLine,Network[210][210],pre[210];
int GetMin(int a,int b)
{
    if (a<b) return a; else return b;
}
int BFS()
{
    bool used[210];
    int i,NowPoint,Flow[210];
    memset(Flow,-1,sizeof(Flow));
    memset(used,0,sizeof(used));
    while (!Myqueue.empty()) Myqueue.pop();
    Myqueue.push(1); Flow[1]=1<<30; pre[1]=1;
    while (!Myqueue.empty())
    {
        NowPoint=Myqueue.front();
        Myqueue.pop();
        for (i=1;i<=NumOfPoint;i++)
         if ( !used[i] && Network[NowPoint][i] ) // 每次广搜..每个点只use一次..!
         {
              Flow[i]=GetMin ( Flow[NowPoint] , Network[NowPoint][i] );
              used[i]=true;
              pre[i]=NowPoint;           
              Myqueue.push(i);       
         }        
    }   
    if (Flow[NumOfPoint]==-1) return 0; 
    return Flow[NumOfPoint];
}
int Edmonds_Karp()
{
    int i,MinFlow,ans=0;
    while (MinFlow=BFS())
    {
        ans+=MinFlow;  
        int NowPoint=NumOfPoint,PrePoint;
        while (NowPoint!=1)
        {
            PrePoint=pre[NowPoint];
            Network[PrePoint][NowPoint]-=MinFlow;
            Network[NowPoint][PrePoint]+=MinFlow;
            NowPoint=PrePoint;    
        }
    }    
    return ans;
}  
int main()
{
    freopen("1458.in","r",stdin);
    freopen("1458.out","w",stdout);
    while (scanf("%d%d",&NumOfLine,&NumOfPoint)!=EOF)
    {
      int x,y,R;  
      memset(Network,0,sizeof(Network));
      for (int i=1;i<=NumOfLine;i++) 
      {
          scanf("%d%d",&x,&y);
          scanf("%d",&R);  
          Network[x][y]+=R;
      } 
      printf("%d\n",Edmonds_Karp());
    }    
    return 0;   
}


 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/kk303/article/details/6707736

智能推荐

知道防火墙是什么吗?WAF (web application Firewall)防火墙原理及其简单绕过_AAAAAAAAAAAA66的博客-程序员秘密

不会吧,不会吧,不会还有人没听过防火墙吧?~~听过是一回事,但了不了解又是另外一会事了,在我小时候,家里电脑刚买,对电脑那是相当的’爱护‘,每次开机都得克制我玩游戏的强烈欲望,先用对电脑进行杀毒,那免不了天天和360安全卫士打交道,凡是联了网,它就会显示防火墙已开启。(其实360也有着作为防火墙的功能)这样就应该是我认识防火墙这个词的过程的过程,不过真正的仔细了解还是在若干年后的大学了,计算机专业说不知道防火墙就有点说不过去了。偷偷问一句,你们还用360不?目录简介防火墙的类型1

关于vue中滚动监听失效问题_weixin_30548917的博客-程序员秘密

在vue项目中,监听window滚动失效;并且document.body.scrollTop一直是0的情况!查找了许多资料;并没有找到合理的解决方案;最中发现,在index.html设置了html,body的宽高设置成了100%;这样会造成window.onscroll监听不到正确的滚出高度(恒为0);不和你们多bb:解决方案:将html,body的height设...

一起Talk Android吧(第五百零七回:图片滤镜ImageFilterView)_android图片滤镜_talk_8的博客-程序员秘密

本章回中主要介绍了ImageFilterView组件的功能和用法。这些功能包含:滤镜、圆角、旋转、缩放和平移。

L2-002 链表去重(25 分)_码奴生来就只知道前进的博客-程序员秘密

L2-002 链表去重(25 分) 给定一个带整数键值的单链表L,本题要求你编写程序,删除那些键值的绝对值有重复的结点。即对任意键值K,只有键值或其绝对值等于K的第一个结点可以被保留。同时,所有被删除的结点必须被保存在另外一个链表中。例如:另L为21→-15→-15→-7→15,则你必须输出去重后的链表21→-15→-7、以及被删除的链表-15→15。输入格式:输入第一行包含链表第一个结...

ubuntu 12.04 无法连接无线网络驱动问题解决_zlp1992的博客-程序员秘密

自己的Ubuntu 12.04 无法连接无线,也无法搜索到可用的无线网络,使用 系统设置->附加驱动 里查找对应的驱动,找到 Broadcom STA 无线驱动没有激活,如下:于是点击 "激活",等待一段时间提示对不起,这个驱动的安装失败了,查看日志 /var/log/jockey.log 网上查找使用命令,比如 sudo apt-get install --reinstall bcm

AVL树--单旋转、双旋转与实现_avl树双旋_iEucliwood的博客-程序员秘密

AVL树AVL(Adelson-Velskii andLandis)树是带有平衡条件的二叉查找树。必须保证树的深度是。 最简单的想法是要求左右子树具有相同的高度。 另一种平衡条件是要求每个节点都必须要有相同高度的左子树和右子树。如果空子树的高度定义为-1(通常就是这么定义的),那么只有具有个节点的理想平衡树(perfectly balanced tree)满足这个条件。因此虽然这种平衡条件保证了树的深度小,但是它太严格,难以使用需要放...

随便推点

IDEA加密文件Base64转换String传输以及报文摘要MD5防止恶意篡改_链巨人的博客-程序员秘密

一、需求:将数据加密之后存放到excel表中,到另一个地方之后,解密读出明文,但要采取一定的方法鉴别密文是否被修改过。二、思路:先用MD5报文摘或要算法算出明文的摘要信息,并把摘要信息和明文一起用IDEA进行加密,保存密文到excel表中。当要读取得时候,先解密,再分离明文和报文摘要,同时再用md5算出明文的报文摘要,用这个报文摘要和原来的摘要对比,如果一样,则密文没有被改动。三、遇到的问题:在进

在CLion中使用Qt_clion 中qt环境的配置_「已注销」的博客-程序员秘密

https://www.littlesweet.xyz/2017/04/06/zai-clionzhong-shi-yong-qt/

十八. vue中的自定义属性_vue自定义属性_这不比博人传燃?的博客-程序员秘密

1. 语法:直接在标签中用。格式:data-属性2. 如何获取自定义属性的值?event.target.dataset.radiusevent是函数第一个参数(默认传参,不用自己传)

python文本数据相关性_Python轻松实现统计学中重要的相关性分析_weixin_39766910的博客-程序员秘密

在我们的工作中,会有一个这样的场景,有若干数据罗列在我们的面前,这组数据相互之间可能会存在一些联系,可能是此增彼涨,或者是负相关,也可能是没有关联,那么我们就需要一种能把这种关联性定量的工具来对数据进行分析,从而给我们的决策提供支持,本文即介绍如何使用 Python 进行数据相关性分析。关键词python方差协方差相关系数离散度pandasnumpy 实验数据准备 接下...

关于对自己写博客的要求_普通网友的博客-程序员秘密

为什么80%的码农都做不了架构师?&gt;&gt;&gt; ...

python程序如何实现注册码,一台电脑一个授权码_Shen Planck的博客-程序员秘密

我们可以通过以下几种方法来实现注册码:1.使用某种加密算法将电脑的硬件信息(例如CPU的序列号,硬盘的序列号等)作为输入,生成一个加密后的注册码。这个注册码可以唯一地标识一台电脑,并且可以通过相同的加密算法来验证这个注册码的有效性。2.使用某种唯一的标识符(例如UUID)来生成注册码。这个注册码也可以唯一地标识一台电脑,并且可以通过查询数据库来验证这个注册码的有效性。3.使用某种在线验证机制...

推荐文章

热门文章

相关标签