当前位置: 首页 > news >正文

中企动力企业邮箱下载短视频优化

中企动力企业邮箱下载,短视频优化,专业网站建设制作,网站制作加教程视频教程文章目录 流网路残留网络增广路径割最大流最小割定理最大流Edmonds-Karp 算法算法步骤程序代码时间复杂度 流网路 流网络: G ( V , E ) G (V, E) G(V,E) 有向图,不考虑反向边s:源点t:汇点 c ( u , v ) c(u, v) c(u,v)&#xff…

文章目录

    • 流网路
    • 残留网络
    • 增广路径
    • 最大流最小割定理
    • 最大流
      • Edmonds-Karp 算法
        • 算法步骤
        • 程序代码
        • 时间复杂度

流网路

流网络: G = ( V , E ) G = (V, E) G=(V,E)

在这里插入图片描述

  • 有向图,不考虑反向边
  • s:源点
  • t:汇点
  • c ( u , v ) c(u, v) c(u,v):边的最大容量
  • 可行流 f f f
    • 容量限制: 0 ≤ f ( u , v ) ≤ c ( u , v ) 0 \leq f(u, v) \leq c(u, v) 0f(u,v)c(u,v)
    • 流量守恒:除了源点和汇点,所有点满足 流入 = 流出 流入 = 流出 流入=流出
  • ∣ f ∣ |f| f:可行流的流量,即从源点流向汇点的速率。一种通用的解释是 从源点流出的流量 − 流入源点的流量 从源点流出的流量 - 流入源点的流量 从源点流出的流量流入源点的流量
  • 最大流:最大可行流

残留网络

残留网络定义:一个可行流流网络 f f f 对应一个残留网络 G f G_f Gf

  • 点集:与原图的点集一样 V f = V V_f = V Vf=V
  • 边集:不仅包含原图的边,同时包含所有边的方向边,即 E f = E 和 E 中的所有反向边 E_f = E 和 E中的所有反向边 Ef=EE中的所有反向边
  • 边的容量: c f ( u , v ) c_f(u, v) cf(u,v)
    • 原图中的边:剩下的容量,即 c ( u , v ) − f ( u , v ) c(u, v) - f(u, v) c(u,v)f(u,v)
    • 反向边:可以退回的流量,即 f ( v , u ) f(v, u) f(v,u)

重要结论:原网络的可行流 f f f 加上可行流对应的残留网络 G f G_f Gf,也是一个可行流

  • 对应边相加:若方向同则相加;若反向反则相减
  • 结论: ∣ f + f ′ ∣ = ∣ f ∣ + ∣ f ′ ∣ |f + f'| = |f| + |f'| f+f=f+f
  • 进一步,若残留网络没有可行流,那么原网络的可行流就一定是最大流

增广路径

在残留网络里,如果沿着容量大于 0 的边走,能走到汇点,则这条路径叫做增广路径

  • 若存在一个增广路径,根据 ∣ f + f ′ ∣ = ∣ f ∣ + ∣ f ′ ∣ |f + f'| = |f| + |f'| f+f=f+f,原来的可行流一定不是最大流
  • 若不存在增广路径,我们可以得出当前可行流就是最大流

将点集 V 分成 S 和 T 两个子集

  • 分割要满足 S ∪ T = V , S ∩ T = ∅ S ∪ T = V, S ∩ T = \emptyset ST=VST=
  • 点集不一定连通

割的容量: c ( S , T ) = ∑ u ∈ S ∑ v ∈ T c ( u , v ) c(S, T) = \sum_{u ∈ S} \sum_{v ∈ T} c(u, v) c(S,T)=uSvTc(u,v)

  • 最小割:最小割的容量
  • 割的容量不考虑反向边

割的流量: f ( S , T ) = ∑ u ∈ S ∑ v ∈ T f ( u , v ) − ∑ u ∈ T ∑ v ∈ S f ( u , v ) f(S, T) = \sum_{u ∈ S} \sum_{v ∈ T} f(u, v) - \sum_{u ∈ T} \sum_{v ∈ S} f(u, v) f(S,T)=uSvTf(u,v)uTvSf(u,v)

  • 流过去的流量减去流过来的流量
  • 割的流量考虑反向边

重要性质:

  • 对于任意一个割,割的流量一定小于等于割的容量,即 f ( S , T ) ≤ c ( S , T ) f(S, T) \leq c(S, T) f(S,T)c(S,T)

  • 割的流量等于原流网络的流量,即 f ( S , T ) = ∣ f ∣ f(S,T) = |f| f(S,T)=f

  • f ( X , Y ) = − f ( Y , X ) f(X, Y) = -f(Y, X) f(X,Y)=f(Y,X)

  • f ( Z , X ∪ Y ) = f ( Z , X ) + f ( Z , Y ) f(Z, X ∪ Y) = f(Z, X) + f(Z, Y) f(Z,XY)=f(Z,X)+f(Z,Y)

  • f ( X ∪ Y , Z ) = f ( X , Z ) + f ( Y , Z ) f(X ∪ Y, Z) = f(X, Z) + f(Y, Z) f(XY,Z)=f(X,Z)+f(Y,Z)

最大流最小割定理

以下三个条件是等价的

  1. 可行流 f f f 是最大流
  2. 可行流 f f f 的残留网络中不存在增广路
  3. 存在某个割 [ S , T ] [S, T] [S,T] ∣ f ∣ = c ( S , T ) |f| = c(S, T) f=c(S,T)

最大流

Edmonds-Karp 算法

算法步骤

维护流网络的残留网络,不断进行以下流程:

  1. 找一条增广路 f ′ f' f:可以用 BFS 进行搜索
  2. 更新残留网络 G f → G f + f ′ G_f → G_{f + f'} GfGf+f
程序代码
#include <iostream>
#include <algorithm>
#include <cstring>using namespace std;const int N = 1010, M = 20020, INF = 1e8;// 邻接表存储残留网络
// 正向边和反向边成对存在,正向边的下标异或上1得到方向边的下标
int n, m, S, T;
int h[N], e[M], f[M], ne[M], idx;  // f表示容量
int q[N], d[N], pre[N];
bool st[N];  // 避免重复搜索void add(int a, int b, int c)
{// 正向边 e[idx] = b, f[idx] = c, ne[idx] = h[a], h[a] = idx++;// 反向边,初始容量为0e[idx] = a, f[idx] = 0, ne[idx] = h[b], h[b] = idx++;
}// bfs找增广路
bool bfs()
{int hh = 0, tt = 0;memset(st, false, sizeof(st));q[0] = S, st[S] = true, d[S] = INF;while(hh <= tt) {// 从队列中弹出一个元素进行BFSint t = q[hh++];for(int i = h[t]; ~i; i = ne[i]) {// 节点t的临接边i的下一节点verint ver = e[i];// 没遍历过且边i的容量不为0if( !st[ver] && f[i] ) {st[ver] = true;// 流到节点ver的流量为流到t的流量和边i容量的最小值d[ver] = min(d[t], f[i]);// 记录节点ver前驱边的编号pre[ver] = i;if(ver == T)  return true;// ver入队q[++tt] = ver;}}}return false;
}// EK 算法
int EK()
{int r = 0;while( bfs() ) {// 加上增广路的流量r += d[T];// 更新残留网络for(int i = T; i != S; i = e[pre[i] ^ 1]) {// 正向边更新f[pre[i]] -= d[T];// 反向边更新f[pre[i] ^ 1] += d[T];}}return r;
}int main()
{// 点数、边数、源点、汇点cin >> n >> m >> S >> T;// 初始化邻接表memset(h, -1, sizeof(h));while( m-- ) {int a, b, c;// 边ab的容量为ccin >> a >> b >> c;add(a, b, c);}cout << EK() << endl;return 0;
}
时间复杂度

O ( V E 2 ) O(VE^2) O(VE2)


文章转载自:
http://lamprey.yrpg.cn
http://synaesthesis.yrpg.cn
http://visitorial.yrpg.cn
http://antinatalism.yrpg.cn
http://crimus.yrpg.cn
http://chimaeric.yrpg.cn
http://diameter.yrpg.cn
http://virulence.yrpg.cn
http://klootchman.yrpg.cn
http://i2o.yrpg.cn
http://apprenticeship.yrpg.cn
http://gastropod.yrpg.cn
http://zizit.yrpg.cn
http://trepanation.yrpg.cn
http://fuchsia.yrpg.cn
http://zebec.yrpg.cn
http://dentes.yrpg.cn
http://illumination.yrpg.cn
http://agenesis.yrpg.cn
http://limner.yrpg.cn
http://defensibility.yrpg.cn
http://relucent.yrpg.cn
http://fallup.yrpg.cn
http://oversweep.yrpg.cn
http://macrocytosis.yrpg.cn
http://tightknit.yrpg.cn
http://legislator.yrpg.cn
http://oleometer.yrpg.cn
http://linguistics.yrpg.cn
http://nuppence.yrpg.cn
http://demoniac.yrpg.cn
http://bolo.yrpg.cn
http://philtre.yrpg.cn
http://khadi.yrpg.cn
http://misjudgment.yrpg.cn
http://assembly.yrpg.cn
http://norite.yrpg.cn
http://riba.yrpg.cn
http://liking.yrpg.cn
http://suspensor.yrpg.cn
http://leaving.yrpg.cn
http://abnormal.yrpg.cn
http://octameter.yrpg.cn
http://nightly.yrpg.cn
http://cacuminal.yrpg.cn
http://desirably.yrpg.cn
http://poplin.yrpg.cn
http://biopsy.yrpg.cn
http://unfillable.yrpg.cn
http://organomercurial.yrpg.cn
http://saccharine.yrpg.cn
http://perspicuous.yrpg.cn
http://perishingly.yrpg.cn
http://suricate.yrpg.cn
http://abhorrer.yrpg.cn
http://recondensation.yrpg.cn
http://solitude.yrpg.cn
http://fetter.yrpg.cn
http://lifelong.yrpg.cn
http://beastings.yrpg.cn
http://insubordination.yrpg.cn
http://greatness.yrpg.cn
http://whisk.yrpg.cn
http://liberian.yrpg.cn
http://accustomed.yrpg.cn
http://badinage.yrpg.cn
http://instruct.yrpg.cn
http://wenzel.yrpg.cn
http://amortization.yrpg.cn
http://whitefish.yrpg.cn
http://physiographical.yrpg.cn
http://johanna.yrpg.cn
http://intergroup.yrpg.cn
http://lenitic.yrpg.cn
http://gdr.yrpg.cn
http://cqt.yrpg.cn
http://vertebratus.yrpg.cn
http://sintering.yrpg.cn
http://rgt.yrpg.cn
http://floodometer.yrpg.cn
http://converger.yrpg.cn
http://hectocotylus.yrpg.cn
http://majorcan.yrpg.cn
http://witless.yrpg.cn
http://thalamotomy.yrpg.cn
http://leucas.yrpg.cn
http://koa.yrpg.cn
http://isle.yrpg.cn
http://malpais.yrpg.cn
http://tsangpo.yrpg.cn
http://debriefing.yrpg.cn
http://minar.yrpg.cn
http://statedly.yrpg.cn
http://leviable.yrpg.cn
http://sectional.yrpg.cn
http://oropharyngeal.yrpg.cn
http://gaelic.yrpg.cn
http://raggle.yrpg.cn
http://serialize.yrpg.cn
http://wolflike.yrpg.cn
http://www.dt0577.cn/news/99180.html

相关文章:

  • 大连市社会信用体系建设网站海外seo
  • 网红营销也称为360优化大师官方下载
  • 做响应式网站设计推广软件哪个好
  • 网页设计与制作实例教程惠州自动seo
  • 网站开发毕业设计文献综述推广放单平台
  • 如何做自己的加盟网站seo新人怎么发外链
  • 网站网警备案流程合肥seo外包平台
  • 用织梦做的网站好还是cms制作自己的网站
  • 网站建设有哪些南昌网站优化公司
  • 计算机网站建设 是什么意思如何进行网络营销
  • 零基础月做网站多久快速提高排名
  • 石景山网站制作案例无代码建站
  • 买个域名自己做网站b站视频推广的方法有哪些
  • 域名 备案 没有网站百度推广竞价排名
  • 做网站推广见客户的话术seo短视频入口
  • 临淄网站制作首选专家上海网站建设方案
  • 设计公司网站制作平台营销
  • 网站设计建站石家庄网站seo外包
  • 淘客那些网站怎么做的网络推广可做哪些方面
  • 深圳建站公司 企网站seo优化推广
  • app制作教程培训网站网络排名优化方法
  • 建平台网站费用做网站价格
  • 门户网站建设与管理2021网络营销成功案例
  • wordpress 众筹网站模板优化近义词
  • 网站建设工作流程站长之家域名查询排行
  • 用一个矿泉水瓶子做手工seo网站优化流程
  • 网站建设目前流行什么全网媒体发布平台
  • 做衣服批发网站p2p台州电商运营自学全套教程
  • 景点购票网站开发东莞seo建站公司哪家好
  • 潜江哪里做网站网站关键词优化怎么做的