zoukankan      html  css  js  c++  java
  • 网络流24题

    经典问题,做了一部分

    太水的就不记录了

     

    最大流是对于一种完整的匹配的处理,一条路一个贡献。要求匹配尽可能多。

    费用流是对于一个路径的最值的处理,每条边自己的费用。再匹配最多前提下,匹配的费用达到最值。

     

    难点就是对于条件状态的设计

    1.

    [网络流24题]餐巾计划问题——费用流建模

    考虑每天一定有ri条脏毛巾,所以脏毛巾和干净毛巾分开处理。

     

    2.

    最长不下降子序列问题 

    怎样规定一定选择了长度为最长的s的?

    起始点一定f[i]=1,终止点一定f[i]=s!

    然后拆点覆盖

    可以选择多次就1,n的容量是inf

     

    3.

    航空路线问题 

    看似是环,由于知道一定经过1,n,所以就是1到n的两条不相交的路径了

    但是经过的点是哪些不知道还要最大化。但是知道两条路的起点终点。

    所以直接最大费用最大流了。

    (星际竞速那个题,不知道起点终点,但是知道所有的点都经过一遍,所以可以S到出点到T,入点到出点)

    找方案,dfs两遍,对边打标记

    由于(1,n)的边可以走两次,所以加入两次(1,n)的边。

     

    4.

    最长k可重区间集问题

    和平常思路不太一样的建模

    发现最小割办不了不能同时相交k个的限制,

    然后考虑费用流处理最优化问题

    但是k个相交怎么办?

    最大流来限制!利用分流和汇流

    离散化,S-1(k,0); i-i+1(k,0) ; 2n-T(k,0),代表同时最多可以重k次

    区间:L-R(1,len),流量为1的道理是,限制同一时间已经占用了一个坑位,之后只能少选择一个

    汇流的时候,也满足一个区间结束了,一个坑位空出了。

    最大费用最大流即可。

    (原来的费用流中最大流都是为了把要求选择的都选上,但是这里恰好是利用,"最大是这么多"的限制!)

     最长k可重线段集问题

    投影,二维变成一维,但是(l,l)的点不能体现选择一次,拆点,注意是开区间。是否包含处理好即可。

     

  • 相关阅读:
    Dialog 对话框的文字与输入框不对齐
    ag-grid动态生成表头及绑定表数据
    ag-grid实时监测复选框变化
    Java-分页工具类
    Java-日期转换工具类
    文件上传与下载
    IDEA的安装与激活
    熟悉IDEA工具的使用
    缓存三大问题的解决办法
    制作一个省份的三级联动菜单
  • 原文地址:https://www.cnblogs.com/Miracevin/p/10609257.html
Copyright © 2011-2022 走看看