第一次写Dinic 然后贴一下 最基础的网络流问题 嘎嘎:

#include <iostream>
#include<cstdio>
#include<string.h>
#include<queue>
using namespace std;
const int M=205;
__int64 map[M][M];
int n,m,dist[M];
queue<int>q;
void readdate()
{
__int64 i,a,b,c;
for(i=0;i<n;i++)
{
scanf("%I64d%I64d%I64d",&a,&b,&c);
map[a][b]+=c;
}
}
bool BFS()
{
while(!q.empty()){q.pop();}
int x,i;
memset(dist,-1,sizeof(dist));
q.push(1);
dist[1]=0;
while(!q.empty())
{
x=q.front();
q.pop();
for(i=1;i<=m;i++)
if(dist[i]<0&&map[x][i]>0)
{
dist[i]=dist[x]+1;
q.push(i);
}
}
if(dist[m]==-1)return 0;
else return 1; }
__int64 min_vual(__int64 a,__int64 b)
{
return a>b?b:a;
}
__int64 find(int a,__int64 low)
{
__int64 aq,i;
if(a==m)return low;
for(i=1;i<=m;i++)
if(dist[a]==dist[i]-1&&map[a][i]>0&&(aq=find(i,min_vual(low,map[a][i]))))
{
map[a][i]-=aq;
map[i][a]+=aq;
return aq;
}
return 0;
}
int main()
{
__int64 temp,ans;
while(scanf("%d%d",&n,&m)==2)
{
ans=0;
memset(map,0,sizeof(map)); readdate();
while(BFS())
{
while((temp=find(1,1<<30)))ans+=temp;
}
printf("%I64d\n",ans);
} return 0;
}

HDU1530 最大流问题的更多相关文章

  1. 网络流-最大流问题 ISAP 算法解释(转自Renfei Song's Blog)

    网络流-最大流问题 ISAP 算法解释 August 7, 2013 / 编程指南 ISAP 是图论求最大流的算法之一,它很好的平衡了运行时间和程序复杂度之间的关系,因此非常常用. 约定 我们使用邻接 ...

  2. 网络最大流问题之Ford-Fulkerson算法原理详解

    前言 最大流问题是网络优化中典型的问题,用形象的语言来描述就是在满足容量约束的前提下将尽可能多的流从源节点(始点)到汇节点(终点).解决此问题的经典方法很多,本文介绍广为人熟知的Ford-Fulker ...

  3. 最大流问题Ford-Fulkerson方法(转)

    本篇主要讲解最大流问题的Ford-Fulkerson解法.可是说这是一种方法,而不是算法,因为它包含具有不同运行时间的几种实现.该方法依赖于三种重要思想:残留网络,增广路径和割.本文将会详细介绍这些内 ...

  4. [图论]最大流问题(Maximum flow)的定义

    首先定义网络(network)N =(V,E), V表示顶点(Vertices)集合, E表示边(Edges)集合. s,t是V中的两个顶点,分别表示网络N中的源点(source)和汇点(sink). ...

  5. 省赛在即!最大流问题回顾学习!!DInic

    Dinic是很好的算法,但是我还是从ek算法复习起步 面对最大流问题,印象最深的就是反向边的思想,他给我们提供了反悔的机会,其实现在放到实际上来想,可以相当于两边的水都流了这条边,只是方向不一样,放到 ...

  6. 最大团 HDU-1530

    传送门: 洛谷 Vjudge    (题目略有不同) 题目描述 • 给定一个图 tt = (V, E) • 求一个点集 S ,使得对于任意 x ≠ y ∈ S ,x 和 y 都有一条边 • |V | ...

  7. NetworkX系列教程(10)-算法之四:拓扑排序与最大流问题

    小书匠Graph图论 重头戏部分来了,写到这里我感觉得仔细认真点了,可能在NetworkX中,实现某些算法就一句话的事,但是这个算法是做什么的,用在什么地方,原理是怎么样的,不清除,所以,我决定先把图 ...

  8. 【python代码】 最大流问题+最小花费问题+python(ortool库)实现

    目录 基本概念 图 邻接矩阵 最大流问题 python解决最大流问题 python解决最大流最小费用问题 基本概念 图 定义: 图G(V,E)是指一个二元组(V(G),E(G)),其中: V(G)={ ...

  9. poj3422 Kaka's Matrix Travels(最小费用最大流问题)

    /* poj3422 Kaka's Matrix Travels 不知道 k次 dp做为什么不对??? 看了大牛的代码,才知道还可以这样做! 开始没有理解将a 和 a‘ 之间建立怎样的两条边,导致程序 ...

随机推荐

  1. Java之旅_高级教_集合框架

    摘自:http://www.runoob.com/java/java-collections.html Java 集合框架 早在Java2之前,java 就提供了特设类.比如:Dictionary,V ...

  2. html 标签笔记

    <一.HTML 基础结构> <html>________________________________<head><title>无标题文档</t ...

  3. 【python基础】利用pandas处理Excel数据

    参考:https://www.cnblogs.com/liulinghua90/p/9935642.html 一.安装第三方库xlrd和pandas 1:pandas依赖处理Excel的xlrd模块, ...

  4. 如何监控 Java 垃圾回收机制: jps、jstack、jmap、jhat、jstat

    一.MinorGC 一个新对象会被放到eden空间,当eden空间满了的时候,MinorGC就会执行,任何存活的对象,都从eden空间复制到to survivor空间,任何在from survivor ...

  5. c语言指针应用

    指针变量指向数组元素: #import <stdio.h> int main() { int a[10]={1,2,3,4,5,6,7,8,9,0}; int *p; p=a; for ( ...

  6. SSLv3存在严重设计缺陷漏洞(CVE-2014-3566)

    SSLv3存在严重设计缺陷漏洞(CVE-2014-3566) 1.引发问题的原因 SSLv3漏洞(CVE-2014-3566),该漏洞贯穿于所有的SSLv3版本中,利用该漏洞,黑客可以通过中间人攻击等 ...

  7. adb移动端测试

    1. Android介绍 Android 是google公司主导的一个开放的手机操作系统,不过目前已经超过了手机的局限,而定位于移动设备的操作系统. Android一词的本义指“机器人”,取名原因很简 ...

  8. ROS安装(2)

    1.Ubuntu无法启动了,进入不了启动界面 刚高兴一会会儿,马上系统重启,进不了登陆界面了.只有控制台的login,无语.试了好几种方法都没有解决. 重装吧!重装Ubuntu之后,装完ROS Kin ...

  9. (转)Fabric 1.0 读写集

    本文译自Fabric 1.0 文档,这篇文档详述了当前读写集语义实现的细节.文档地址为: https://hyperledger-fabric.readthedocs.io/en/latest/rea ...

  10. (转)Ctrl+H 浪潮Raid配置文档

    说明 本手册适用于LSI芯片Raid卡 包括但不限于Inspur 2008/2108 Raid卡.LSI 9240/9260/9261/9271 等Raid卡. 不同型号的Raid卡在某些功能上的支持 ...