首页 > 其他 > 详细

终极模板“水题”——网络流

时间:2019-11-16 20:59:44      阅读:99      评论:0      收藏:0      [点我收藏+]

其实这篇https://www.cnblogs.com/victorique/p/8560656.html写得很完整了,但是为了加深自己的印象,就自己写一篇吧。

 

网络流的练习我用了传说中的网络流24题,我把题目都看了一遍,发现一个问题,有些题好像真的是为了网络流而搞网络流的做法出来,导致题目的可做性不强,虽然如此,但是除了这些题目之外,其他的题目,也挺让我耳目一新的。

其实,网络流把两套模板给记住,基本上就算是完成了一道题的一大半了。第一套模板是网络最大流(dinic+当前弧优化);第二套模板是最小费用最大流(利用spfa找出最短路的同时保证网络最大流)但是如果像我这么说的话,把网络流单纯看成模板题,是肯定是做不出来题目的,那么网络流关键的点在哪?网络流通常的套路又是什么?

1.建图

基本上网络流的题都难在这里了。如何建图,是一个难点。

(1)二分图

技术分享图片

 

一类建图即是以二分图的形式来建,其包括操作拆点,建立超级源点、汇点,等等。那么在二分图上,能进行解决什么问题呢?最普遍的莫过于匹配问题,通过二分图,求出点与点之间的最大匹配值,然后再利用二分图上的性质,来求出问题的解,而二分图上的性质有下面几种常用的:最大匹配=最小点覆盖;最小路径覆盖=|G|-最大匹配数(G为点数);最大独立集=点数-最大匹配=最小边覆盖。我们可以看到求出一个最大匹配,基本上就能算出其他的问题出来,大多数问题也是基于二分图原理来问的。

例题有:飞行员配对方案问题,试题库问题等,

 还有一种类似与二分图的建图方法,其特点是可以从右边的点再回去左边的点,有点像路径问题,但是也不全是,把图画出来其实也大概是上面那个图的模样,应该算是一个变种吧。

例题:数字梯形问题的第一问

(2)普通图

技术分享图片

 

这种图就不说了,应该是网络流题目里面最基础的图。

 (3)序列上的图

技术分享图片

 

 (侵删)

这些题并不类似于我们平时做的网络流题,它是在序列上的,且很难建出来二分图,因此只能让它待在序列上。由于只接触了一道这种题目,而且还是不太理解的那种,这里就只给出一道例题来参考。

例题:最长k可重区间集问题

2.网络流的模型

最小割,最小费用最大流,最大费用最大流等等。(笔者突然这里不想写了,因为开头那篇文章太详细了,感觉写下去都是别人的影子,建议做完网络流的都来围观dalao总结)

总结:刷最大流题目,首先懂得要怎么去建图,把图建好,套上模板,基本上不会出大问题,这里我留下一个疑问,这是我在某个题解的评论里面看到的,原话是:费用流能解决所有线性规划问题,不知是真是假......

终极模板“水题”——网络流

原文:https://www.cnblogs.com/Y-Knightqin/p/11873161.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!