zoukankan      html  css  js  c++  java
  • 最大流部分

    最大流水题:hdu1532、hdu3549、hdu2732(拆点、经典题目)




    hdu3572
        isap,水,建图:
        源点0和每个任务,都建立一个0到任务ni的容量为pi的边;
        对于某个任务,其可以执行的时间在si到ei,那么这个任务到si
    至ei(含临界)这些时间点都建立容量为1的边;
        每个时间点到汇点建立一条容量为m的边。




    hdu4309
        4000多次的网络流。。。
        建图:
            0到每个城市连边、容量为该城市人口;
            好的桥,连容量为无上限的边;
            坏的桥,未修复时连容量为1的边、修复后连容量无上
        限的边。(这个好坑啊。。没修复的时候也可以走一个人,
        可以1Y的代码愣是因为这个检查了一天呀。。。)
            防空洞,直接从防空洞的起始点a到e(终点)连边,没必
        要再在边a和b之间虚拟一个点x而建立a到x、x到b、以及x到
        e的边。直接建立a到e的边就行。




    hdu3605
        最大流+状态压缩、判满流,难度一般。
        10W个人么、所以直接网络流是必定TLE的;
        不过注意到m只有10、所以10W的点(人)是可以合并的,用val[i]表示
    可以在i的二进制表示中、第j位表示为1的、第j个星球生存的的人的总数,
    这样合并之后就最多只有(1<<10)个节点了,网络流之(第j位为1、表示可以
    在第j个星球生存)。




    hdu1569
        网络流,最大点权独立集=总权值-最小点权覆盖集。
        最小割的应用,建图跑网络流,求出最小割,那么把这个最小割移除掉,
    从源点到汇点就一毛钱都不能到达了。用sum减去这个最小割(也就是最大流)
    既为所求。
        上面说的很不详细、建图呀什么都没有说,读不懂很正常= =,因为有更
    详细的,看这个论文(不是ppt)吧:胡伯涛《最小割模型在信息学竞赛中的应
    用》,直接跳到第五部分读就行了。




    hdu2883
        网络流+离散化。
        和hdu3572一样的题,只是时间范围是100W,介个有点儿多了。
    不过才200个人么,所以点的数量不多,离散化一下就行了(比如有对
    于ti和ti+1这两个时间点,都只有第j号任务可以执行,那么完全可以
    把ti和ti+1这两个时间点合并,从而和汇点建立一条容量为2个单位的
    边(我是将ti+1点并入了ti,j任务和ti建边、而省掉ti+1))。
        这个题给的时间和hdu3752的有一点儿不同,对于si和ei,可以用
    来烤肉的时间是ei-si;而对于hdu3752题,对于一个任务有si、ei,那
    么可以执行这个任务的单位时间段有ei-si+1条,既题意对待临界的方
    式不同。
        刚开始这点儿没有想清楚,做2883这个题的时候就用了别的拆点
    的方法去处理临界了,处理完才发现这个题不用考虑这个。。。

  • 相关阅读:
    springmvc到底怎么工作的
    (netty专题)初步认识BIO、NIO、AIO
    dubbo基本使用理解
    warning: ignoring option PermSize=512m; support was removed in 8.0解决
    面试都看那些
    MySQL——通过EXPLAIN分析SQL的执行计划
    springboot中的json、gson、fastjson如何使用与日期格式转换
    如何生成一个不重复的四位数
    深入理解SpringCloud之Gateway 接上篇Webflux快速入门
    Layui 手册2
  • 原文地址:https://www.cnblogs.com/wlxtuacm/p/5712285.html
Copyright © 2011-2022 走看看