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

    联赛后按专题刷题,最近是网络流,感觉自己每到刷题时就会很慢,好在最近状态还可以。

    然而老夫思考一番决定还是放题解包吧,从题解中寻找思路。

    关于最大流:

    首先是一些比较基础的方法,如:拆点,先把总的贡献加上再尽量减小(把至少转化成最大)

    以及一些建图技巧:奇偶染色,按照某个限制进行拆点,动态加点等

    例题:

    蜥蜴(基础题,拆点限流

    星际战争(与二分结合

    奇怪的游戏(奇偶染色

    士兵占领(先加贡献,减最大流

     紧急疏散(按时间拆点

    个人理解:最大流的题难点其实在于建图方式,对转化题意方面要求不高

    关于最小割 :

    需要一定的转化题意的能力,

    首先是类似二分图,对两点间有限制的,如:二选一。可以用最小割解决

    其次是可以转化为最大权闭合子图的。

    技巧方面,注意数据范围如果很大看能不能转化为对偶图跑最短路

    例题:

    狼抓兔子&海拔(平面图转对偶图

    切糕(可以算是一类模型,用inf边去限制割的边的范围

    最大获利&植物大战僵尸&寿司餐厅&employ人员雇佣&线性代数(最大权闭合子图

    happiness(用最小割实现一个类似比较大小的过程

    另外:最小割树(这玩意我只会板子。。。

    个人理解:最小割在某些情况下可以理解为比较大小的过程。(好像就是最大权闭合子图

    另外:若可以导出“若i则j,所选权值最大”之类的东西,可以考虑最大权闭合子图

    关于费用流(只会spfa

    个人觉得从流和费用的实际意义出发考虑问题比较明白

    技巧方面,动态建点&边

    例题:

    修车&美食节&壕游戏:(拆点,动态建点&加边

    数字配对&千钧一发:(推式子,二分图黑白染色

    上下界网络流:

    无源汇可行流:是其他上下界的基础,一定要理解

    主要思想是先满足下限,然后根据每个点的流入流出量,新建超级源汇S,T。

    向原图中的点连接相应的必需权值的边。

    有源汇可行流:在无源汇的基础上,t先s连inf。同时根据实际含义,t向s连边的流量其实就是原图的可行流的流量。

    上下界费用流:这玩意其实特别好用,好多费用流的题,若对流量和费用都有限制,可以考虑大力上下界费用流,这样可以避免很多限制,如:星际竞速。

    然而还有一个技巧:对于某些上下界费用流的图,可以对每个点拆点,中间连接-inf的费用,最后再减去,这样就可以避免上下界网络流。

    所以好像上下界费用流也不咋地。。。

    例题:

    志愿者招募:按照实际意义分析,考虑对于每种志愿者新建一个点x,从结束日向x连边,从x向起始点连边,含义是有一股流从x出发从起点跑到终点最后在回到x(循环流)然后就可以跑无源汇费用流了,然后你发现新建的点只是作为一个中转站出现的,直接从结束点想起始点连边即可。

    旅行时的困惑:100000个点跑上下界???(打个贪心直接溜

    80人环游世界&星际竞速:裸的(可以点权-inf搞)

    个人理解:上下界网络流其实可以作为一种暴力,用规定上下界的方式对流量进行约束。

    upd:对于费用流,若一开始从源点到汇点没有负权边,即所有正的流量都对应正的花费,则可以在spfa中加一句:if(dis[u]>=dis[T])continue;,加上后跑得很快,但我不会证。。。

  • 相关阅读:
    天地图专题六:复杂操作,天地图上标注点的连线以及模拟点击事件
    天地图专题五:在天地图上绘制电子区域并保存数据
    天地图专题四:在天地图上显示运行轨迹
    天地图专题三:根据标注点的范围确定天地图的中心点和缩放级别
    天地图专题二:在天地图上循环显示标注点以及悬停显示信息窗口
    天地图专题一:加载天地图
    从百度地图批量获取中国县级以上行政区划边界坐标
    【百度地图API】如何获取行政区域的边界? (转载)
    高德地图api之location定位
    url中的空格
  • 原文地址:https://www.cnblogs.com/loadingkkk/p/12018520.html
Copyright © 2011-2022 走看看