图论-网络流④-最大流解题①
上一篇:图论-网络流③-最大流②
下一篇:图论-网络流⑤-最大流解题②
参考文献:
- https://www.luogu.com.cn/problemnew/solution/P1231
大纲
- 什么是网络流
- 最大流(最小割)
- D i n i c Dinic Dinic (常用)
- E K EK EK
- S a p Sap Sap
- F o r d − F u l k e r s o n Ford-Fulkerson Ford−Fulkerson(不讲)
- H L P P HLPP HLPP (快)
- 最大流解题 Start \color{#33cc00}\texttt{Start} Start End \color{red}\texttt{End} End
- 费用流
- E K EK EK 费用流
- D i n i c Dinic Dinic 费用流
- z k w zkw zkw 费用流
费用流解题
有上下界的网络流
- 无源汇上下界可行流
- 有源汇上下界可行流
- 有源汇上下界最大流
- 有源汇上下界最小流
- 最大权闭合子图
- 有上下界的网络流解题
上两篇讲了最大流的定义以及 4 4 4 种算法,这一篇会讲最大流的解题。
最大流解题
如果某某 T a r j a n Tarjan Tarjan 算法仅用于图上,那么这个算法的题就非常单调了。幸好后来有神仙发明了 2 − s a t 2-sat 2−sat挽救了这个算法。
同理,如果网络流只能用来计算下水管道里的东西的话,那么它就不会风靡 O I OI OI了。所以,蒟蒻在这里放几个经典例题,来跟大家具体讲解。
[luogu原创]教辅的组成
然后你有 5 5 5分钟的读题时间和 2 2 2分钟的惊讶时间。
你拿到这题后,会吃惊:这更像 d p dp dp题一些!如果你学过二分图(匈牙利算法),你可能就会知道——这是两个连着的二分图。
你可以这么想,一组教辅就像一条 s → 练习册 → 书 → 答案 s\to\texttt{练习册}\to\texttt{书}\to\texttt{答案} s→练习册→书→答案 的路径。其中练习册和书得可能对应,书和答案也得可能对应。所以可以把书、练习册、答案先全扔地上,然后从源点向练习册连边,从答案向汇点连边,从练习册向可能对应的书连边,从书向可能对应的答案连边(流量都为 1 1 1,如下),就有 10 10 10 分了(???)。
你会再次惊讶:这么完美的图哪错了呢?其实你仔细看会发现:上面图的最大流为 2 2 2,而你只能凑成 1 1 1 套教辅。
其中的玄机是:上面那本书被用了两次!可是你不能给点设流量啊,所以大技巧出场:拆点(如下)。
把每本书拆成两本,入边连一本,出边连一本,两本间流量为 1 1 1,这样就相当于给点设了个流量,保证了一本书只用一遍。
整理一下:
s ⇒ f l o w = 1 每本练习册 s\xRightarrow{flow=1} \texttt{每本练习册} sflow=1