一些有难度的网络流问题

  • 本质是线性规划

最小割建模

NOI2010 海拔

  • 一个N \times M的网格,每跳变的两个方向都有一定数目的人流,每个格点都有海拔,一个人爬坡需要付出高度差的代价,下坡不付出代价,左下角高度为0,右上角高度为1,求安排其它点盖度最小化总代价。
  • N, M \leqslant 500

对偶图+Dijikstra

调整法证明高度一定是01且构成一个割。

TCO Semifinal Colorful Tree

  • 一个DAG,保证边<u,v>一定满足u<v,且边的区间一定只存在包含不存在相交,每个点都有一个颜色,每种颜色要不全都经过要不全都不经过,边有边权,求最短路
  • N \leqslant 50

边区间不相交构成一棵树,其实就是原图对偶图,最短路转化为最小割,
连若干inf边保证同色点在一边,向父亲连inf保证形态。

最大权闭合子图

N个物品,每个物品有一个价值v_i(可负),你需要选出一个物品的集
合,最大化其中物品的总价值,并满足m个限制x_i,y_i:选了x_i就必须选
y_i。 

正价值物品与S连边,负价值物品与T连边,使用容量无穷的边来限制选
x_i就必须选择y_i

完美理论

  • 给定两个编号都是1到N的树,你需要选\{1,2,...,N\}的一个子集,最大化选到的元素权值(可负)的和,同时你选的集合在两棵树上都是连通子图

枚举根,选x必须选x的父亲,最大权闭合子图。

SRM 577 HardBoardPainting

  • 一个有障碍的N \times N网格,每次粉刷一横列或者一纵列,不可重复粉刷,求最少的粉刷次数粉刷所有非障碍路。

考虑两个点是横着被刷还是竖着被刷

极小割对应涂色法,极小割对元素有唯一划分,与横边界相连的横涂与纵边界相连的纵涂。

每个格子当成变量,x_i=0表示横向粉刷这个格子, x_i=1表示纵向粉刷,横着相邻的两个格子若在同一个集合就可以一起粉刷获得收益,纵向亦然。最大权闭合图模型。

另一种做法:链接所有相邻的各自,从横向边界到纵向边界做最小割,除以二就是答案

证明:涂色法对应割,一条染色用割掉两端的边表示

极小割对应涂色法,极小割对元素有唯一划分,与横边界相连的横涂与纵边界相连的纵涂。

集合划分模型

  • 考虑如下的整数划分
  • x_1 \in \{0,1\},\ Minimize\ P = \sum p_ix_i+\sum w_{i,j}\max(x_i-x_j,0)
  • 即除了每个元素取0,1会有代价的差异之外,若两个变量取值不等则会付出额外的代价,且根据谁选择1代价可变。
  • 根据x_i的取值把元素划分成两个集合,可以容易的建立出最小割模型,采用最大流求解。
  • 集合划分模型只处理不同集合的元素对之间的代价,若要相同集合付出代价,需是二分图黑白染色后处理。

 

SRM 594 Medium FoxAndGo3

  • 一个N \times N围棋棋盘,任意两个白子不相等,你要加入若干个黑子并提出白子,最大化空格数目
  • N \leqslant 50

注意到与白子与相邻的空格最终不可能都为空格,于是连边,接着做最大点独立集,显然是二分图。

最优选择

  • 给出一张n个点的无向图,每条边的边权定义为所链接两点点权的异或(异或的性质:每一位独立),有些点权确定,有些没有,请确定所有点的点权,使得边权和最小
  • n \leqslant 100

每一位分开考虑,除固定权值外,此位置不同才付出代价,集合划分模型。

SRM 558 Hard Surrounding Game

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值