![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络流
qte_acm
这个作者很懒,什么都没留下…
展开
-
网络流之Dinic算法
[转载]网络流之Dinic算法 2011-10-2012:51:00| 分类: 网络流 | 标签: |字号大中小 订阅Dinic 算法的基本步骤为:1) 计算残余网络的层次图。我们定义 h[i] 为顶点 i 距离源 S 所经过到最小边数,求出所有顶点的 h 值,h[]值相同的顶点属于同一层,这就是网络的层次图。2) 在层次图上进行 BFS增广,直到不存在增广路原创 2013-12-14 20:02:11 · 610 阅读 · 0 评论 -
基于增广路的网络流算法
网络流作为一门高级图论,在近几年的信息学竞赛中越来越频繁的出现,而且难度颇深。网络流算法由3大系组成,分别为增广路系,预留推进系,最小割系。下面介绍一下增广路系的网络流算法。1.ek算法 网络流中基础算法,算法思想是每次用bfs找增广路。2.dinic算法 理论时间复杂度为O(n^2m),算法思想是先用一个bfs建立层次图,然后用一个dfs(单路增广)不断找增广路。每次增广路用一个栈保原创 2013-12-14 20:02:08 · 1220 阅读 · 0 评论 -
poj 2112 中等网络流
题意有点难以理解解法:最大流算法+floyd+二分法 , 首先用floyd求出任意点之间的最短路径 , 然后对最大距离进行二分 。建图:源点到奶牛之间连一条有向边 , 挤奶器到汇点连一条有向边 , 奶牛到挤奶器之间的边要根据距离来连 ,如果它们之间的距离小于要求的距离 , 那么就连一条有向边。误区:题意是要求奶牛到挤奶器距离的最大值最小 , 那么我们根据任意点之间的最短路径来求 , 那原创 2013-12-14 20:06:41 · 558 阅读 · 0 评论 -
poj 1149 简单网络流
解法: 以人为节点 , 另外条件一个源点和汇点 , 人到汇点连一条有向边 , 表示这个人要买多少猪 ,对于每个猪圈的数量只加在第一个到访的人身上 , 如果后面还有人到访这个猪圈 ,那么这个和第一个到访的人就连一条有向边 , 权值为无穷大 , 源点到每个人身上 , 有一条有向边。代码:dinic//Dinic算法 , 求最大流#include#include#include原创 2013-12-14 20:06:44 · 731 阅读 · 0 评论