- 本质是线性规划
最小割建模
NOI2010 海拔
- 一个的网格,每跳变的两个方向都有一定数目的人流,每个格点都有海拔,一个人爬坡需要付出高度差的代价,下坡不付出代价,左下角高度为,右上角高度为,求安排其它点盖度最小化总代价。
对偶图+Dijikstra
调整法证明高度一定是01且构成一个割。
TCO Semifinal Colorful Tree
- 一个DAG,保证边一定满足,且边的区间一定只存在包含不存在相交,每个点都有一个颜色,每种颜色要不全都经过要不全都不经过,边有边权,求最短路
边区间不相交构成一棵树,其实就是原图对偶图,最短路转化为最小割,
连若干inf边保证同色点在一边,向父亲连inf保证形态。
最大权闭合子图
有个物品,每个物品有一个价值(可负),你需要选出一个物品的集
合,最大化其中物品的总价值,并满足个限制:选了就必须选
择。正价值物品与连边,负价值物品与连边,使用容量无穷的边来限制选
了就必须选择。
完美理论
- 给定两个编号都是1到N的树,你需要选的一个子集,最大化选到的元素权值(可负)的和,同时你选的集合在两棵树上都是连通子图
枚举根,选x必须选x的父亲,最大权闭合子图。
SRM 577 HardBoardPainting
- 一个有障碍的网格,每次粉刷一横列或者一纵列,不可重复粉刷,求最少的粉刷次数粉刷所有非障碍路。
考虑两个点是横着被刷还是竖着被刷
极小割对应涂色法,极小割对元素有唯一划分,与横边界相连的横涂与纵边界相连的纵涂。
每个格子当成变量,表示横向粉刷这个格子, 表示纵向粉刷,横着相邻的两个格子若在同一个集合就可以一起粉刷获得收益,纵向亦然。最大权闭合图模型。
另一种做法:链接所有相邻的各自,从横向边界到纵向边界做最小割,除以二就是答案
证明:涂色法对应割,一条染色用割掉两端的边表示
极小割对应涂色法,极小割对元素有唯一划分,与横边界相连的横涂与纵边界相连的纵涂。
集合划分模型
- 考虑如下的整数划分
- 即除了每个元素取0,1会有代价的差异之外,若两个变量取值不等则会付出额外的代价,且根据谁选择1代价可变。
- 根据的取值把元素划分成两个集合,可以容易的建立出最小割模型,采用最大流求解。
- 集合划分模型只处理不同集合的元素对之间的代价,若要相同集合付出代价,需是二分图黑白染色后处理。
SRM 594 Medium FoxAndGo3
- 一个围棋棋盘,任意两个白子不相等,你要加入若干个黑子并提出白子,最大化空格数目
注意到与白子与相邻的空格最终不可能都为空格,于是连边,接着做最大点独立集,显然是二分图。
最优选择
- 给出一张个点的无向图,每条边的边权定义为所链接两点点权的异或(异或的性质:每一位独立),有些点权确定,有些没有,请确定所有点的点权,使得边权和最小
每一位分开考虑,除固定权值外,此位置不同才付出代价,集合划分模型。
SRM 558 Hard Surrounding Game
- 一个人在一个