前言:如果说网络流的难点在于建模,则最小割的难点还有一个——想到利用最小割,以及建出适用的最小割模型。一旦这两点搞定,就可以使用最小割=最大流定理解题了。
1, 直接使用定理
最小割释义:一个图中的一些边,使得删去这些边后整个图不连通,且这些边的总权值最小。
典型例题:太空飞行计划问题/方格取数问题/骑士共存问题
例题:
【tyvj1338】QQ农场
这个农场和游戏中略有不同。土地实际上是一个边长为N的正方形,由N*N块土地组成。
在每块土地上,都种有一种农作物。如果他选择摘取一块土地上的农作物,就能获得一个固定的利润(当然,这个利润是正数)。不同土地上的利润多半是不同的。
贪心的Sandytea本想摘取所有土地上的农作物。但是正当他准备行动时,却被告知不允许摘取了两块有公共边的土地上的作物,否则就会被主人的狗发现。
Sandytea想知道,在不被狗抓住的前提下,他能获得的最大利益是多少。
题解:先对正方形黑白相间染色。能获得的利益最大化=不能获得的利益最小化。由源点向黑格连容量为格点权值的边,白格向汇点连容量为格点权值的边,每个格子向相邻的边连容量为inf的边,可以证明这张图的最小割即为最小不能获得的利益,然后跑最大流即可。
2, 最小割转最短路
有时点数过多,网络流会超时,得把最小割转成最短路问题。
<