zoukankan      html  css  js  c++  java
  • 网络流知识总结

    网络流知识总结

    此片略过网络流基础知识及定义,重点讨论用法

    最大流(最小割)

    众所周知,最大流的主流算法为Dinic,Isap及预流推进,此处不予以介绍

    二分图匹配模型的转化

    很多看似复杂的网络流问题都可以将其转化成二分图模型.
    1.给你一些点,让取一些点,不取一些点,选取的点和不选取的点之间都有代价
    那么显然可以理解为将一个图分为两个点集的最小代价,那么也就可以理解成花最小的代价割掉一些边,使两个点集之间没有边能互通

    有上下界的网络流

    基本建模:对于一条边的上下界限制(如果是点就拆点当边做):
    1.新建源点汇点,也就是有两对源汇.(有些题可以不用新开但有些题必须新开,根据题目选择)
    2.该点入点连接新汇点,出点连接新源点,容量都为下界,入点连接出点,容量为上下界之差
    3.判断满足条件的情况就是上述前两类边都满流(流满下界嘛)
    这样很多看似较难的问题都可以用这种方法解决

    求割边最小的最小割

    1.先按原图跑一遍最大流,再将满流的边流量设为1(能割的),和INF(不能割的),第二次的最大流即是个数
    证明:不会
    疑问:如果第一遍的网络流得到的满流边们不够优秀怎么办..

    2.设边数位E,则每条边权值w=w*(E+1)+1,跑一边最大流Flow,
    则MaxFlow=Flow/(E+1),个数=Flow%(E+1)
    证明:
    上述操作就相当于将边权转换成(E+1)进制数,其十位是原边权,个位是1
    那么上述结果就显然了
    不足:容易爆longlong啊..

    费用流

    目前还没怎么应用…

  • 相关阅读:
    Caliburn.Micro学习笔记(四)----IHandle<T>实现多语言功能
    linux irq 自动探测
    gpio子系统和pinctrl子系统(下)
    gpio子系统和pinctrl子系统(中)
    gpio子系统和pinctrl子系统(上)
    linux驱动基础系列--linux spi驱动框架分析
    linux驱动基础系列--linux rtc子系统
    linux驱动基础系列--Linux I2c驱动分析
    camera驱动框架分析(上)
    camera驱动框架分析(中)
  • 原文地址:https://www.cnblogs.com/functionendless/p/9439361.html
Copyright © 2011-2022 走看看