模型要点:

1.一般适用于二取一问题或者01规划。

2.利用最小割=最大流,转化为最大流求之。

建议阅读胡伯涛的论文 <<最小割模型在信息学竞赛的应用>>,有精彩有序的证明和各种模型,不过我大概花了2个星期才把它弄懂...最小密度路径的改进算法那一块的推导前面部分有些问题,但后面是对的,结论也是对的,蛋疼了好久。。

相关题目:

1.太空飞行计划(网络流24题)

题目大意:

有一些实验和仪器,做每个实验有相应的报酬,但是需要买好相应的仪器(多个实验可以共用),仪器需要相应的钱.求最大利润。

题解:

经典的最大权闭合图模型。闭合图的概念是原图的一个点集,要求该点集的所有出边仍指向该点集合,最大权闭合图就是给每个点加一个权值,要求权值和最大。

转化一下,由最大变成最小。

S到正权值的点连边,容量为其权值,负权值的点到T连边,容量为其绝对值,然后原图中的边容量为inf,ans=所有正权和-最小割

2.方格取数(网络流24题)

题目大意:

矩阵中每个格子有一个数,要求取的格子不能相邻。要求取的数和最大。

题解:

这题让我学会了染色法,即把格子黑白染色,这样相邻的格子颜色一定不同,这样便转化为二分图的最大权独立集了。

最大权独立集的解法:

S到点的边和点到T的边容量为其权值,点与点之间的边容量为无穷大。这样对于任意一条从S到T得路径都对应相邻的两个点,割的作用就是二者取1。另外补充一个概念:像这样只有和ST相连的边的权值才不是无穷大的割叫做简单割。 这样求出的实际上是最小点权覆盖集,它和 最大权独立集是互补问题,具体证明可以用反证法。所以有最小点权覆盖集的权值+最大权独立集的权值=

总权值。

3.骑士共存(网络流24题)

题目大意:

在矩阵上放尽可能多的骑士,要求互不攻击。

题解:

同方格取数,染色+最大权独立集。

思考:

两个格子的颜色是否相同取决于 它们的曼哈顿距离的奇偶性。骑士的跳法和方格取数的规则都有两个格子颜色不同的性质。 那么如果改变骑士的跳法,每次只能沿着对角线跳一格。那么起点和中点的位置 颜色就相同了,就没法转化成二分图模型了。  我想到的做法仍然是染色,既然颜色不同的格子互相不影响,那么干脆把原矩阵拆成2个,黑白格子算.然后在分离出来的子矩阵里继续黑白染色执行之前的算法即可。

4.Friendship(poj 1815)

题目大意:

告诉你n个人之间的通话关系,然后要去掉尽可能少的人(不能去掉1号和n号),使得1号和n号不联通.人数相同要求字典序最小。

题解:

1.把人拆成2个点,连边容量为1,其他边容量为无穷大,求最小割就是答案。

2.要使字典序最小,可以用点贪心的思想,先求最小割,然后从2到n-1号依次枚举,把那个人暂时去掉,如果最小割减小了,那么永远把他去掉,否则把他加回去。

5.狼抓兔子(BZOJ 1001)

题目大意:

平面图最小割。

题解:

参考 <<浅析最大最小定理在信息学竞赛的应用>> by 周冬

先求平面图的对偶图(其实就是点和面相互转化),这样原图的割都对应偶图中S-T的一条路径,具体看论文,dijkstra+heap求个最短路即可。

6.植物大战僵尸(BZOJ 1565,NOI 2009)

题目大意:

给出每个植物的攻击范围和吃掉后的获利(可能为负),如果一个植物所在的位置在另外一个未被吃掉的植物的攻击范围内,那么这个植物是无敌的。求僵尸的最大获利。

题解:

很明显的一个最大权闭合图的模型(取了A就必须取B),所以对于A能攻击B,连边<B,A>.但是不是裸的最大权闭合图(一开始没看出来,结果样例没跑出来).比如有2个植物AB,A在B的攻击范围内,B在A的攻击范围内,那么AB都无敌,而最大权闭合图的模型是有可能把AB都取来的。所以一开始应该消去所有"绝对无敌"的点,我起初的做法是做一次拓扑排序,没有被遍历到的点必定"绝对无敌",但是这样做考虑不全面。比如有一个环A->B->C->A , 然后又 A->D,即D可以攻击A,那显然D不是无敌的,但是拓扑排序并不会遍历到D。 看了网络上的题解,其实思路已经非常接近了,只要反向存边,这样有向边<A,B>的意义就变成A可以攻击B,然后做拓扑排序,没有被遍历到的点必定"绝对无敌"。

非常不错的一道题。

7.最大获利(bzoj 1497,NOI 2006)

题目大意:(据说是NOI第一道网络流的题目说)

有n个通讯站,m个用户,每个用户需要使用某2个通讯站,如果满足他的要求可以得到一些钱,但是造通讯站也要钱。所以要让赚的钱最多。

题解:

解法一:

经过上面这些题目的洗礼之后,应该不难想到可以构造二分图,把通讯站和用户都看成点。对于每个用户,连边到他需要的通讯站, 就变成一个最大权闭合图的模型了。理论上时间复杂度略高,因为点比较多,但是 dinic是只要敢写就会有奇迹的算法,所以 400ms+ AC了。

解法二:

参考胡伯涛的论文 <<最小割模型在信息学竞赛的应用>> 关于最大密度子图的改进算法,那个处理方法可以沿用过来。

最小割 总结&&做题记录的更多相关文章

  1. FJOI2017前做题记录

    FJOI2017前做题记录 2017-04-15 [ZJOI2017] 树状数组 问题转化后,变成区间随机将一个数异或一,询问两个位置的值相等的概率.(注意特判询问有一个区间的左端点为1的情况,因为题 ...

  2. Sam做题记录

    Sam做题记录 Hihocoder 后缀自动机二·重复旋律5 求一个串中本质不同的子串数 显然,答案是 \(\sum len[i]-len[fa[i]]\) Hihocoder 后缀自动机三·重复旋律 ...

  3. 退役IV次后做题记录

    退役IV次后做题记录 我啥都不会了.... AGC023 D 如果所有的楼房都在\(S\)同一边可以直接得出答案. 否则考虑最左最右两边的票数,如果左边>=右边,那么最右边会投给左边,因为就算车 ...

  4. 退役III次后做题记录(扯淡)

    退役III次后做题记录(扯淡) CF607E Cross Sum 计算几何屎题 直接二分一下,算出每条线的位置然后算 注意相对位置这个不能先搞出坐标,直接算角度就行了,不然会卡精度/px flag:计 ...

  5. 退役II次后做题记录

    退役II次后做题记录 感觉没啥好更的,咕. atcoder1219 历史研究 回滚莫队. [六省联考2017]组合数问题 我是傻逼 按照组合意义等价于\(nk\)个物品,选的物品\(\mod k\) ...

  6. UOJ 做题记录

    UOJ 做题记录 其实我这么弱> >根本不会做题呢> > #21. [UR #1]缩进优化 其实想想还是一道非常丝播的题目呢> > 直接对于每个缩进长度统计一遍就好 ...

  7. project euler做题记录

    ProjectEuler_做题记录 简单记录一下. problem 441 The inverse summation of coprime couples 神仙题.考虑答案为: \[\begin{a ...

  8. BJOI做题记录

    BJOI做题记录 终于想起还要做一下历年省选题了2333 然而咕了的还是比做了的多2333 LOJ #2178. 「BJOI2017」机动训练 咕了. LOJ #2179. 「BJOI2017」树的难 ...

  9. [日记&做题记录]-Noip2016提高组复赛 倒数十天

    写这篇博客的时候有点激动 为了让自己不颓 还是写写日记 存存模板 Nov.8 2016 今天早上买了两个蛋挞 吃了一个 然后就做数论(前天晚上还是想放弃数论 但是昨天被数论虐了 woc noip模拟赛 ...

随机推荐

  1. 0523 Scrum 项目6.0

    团队名称:√3 团队目标:全力完成这次的项目 团队口号:我要改变世界,改变自己!!! 演讲稿:我们的产品 鸡汤精选 是为了解决 当下社会出现的太多的负能量使得人们的内心十分 的痛苦, 他们需要强大的正 ...

  2. android-eclipse-phonegap 2..9以下(包含2.9)的项目配置

    1.搭建android.eclipse环境,下载phonegap 2.9包 2.新建android项目 3.拷贝phonegap-2.9.0\lib\android\cordova-2.9.0.jar ...

  3. RobotFrameWork webservice soap接口测试 (二)

    上一篇提到做soap接口测试自己简单的写了个py,然后就简单的实现了个客户端能对远程接口进行调用,对返回的数据进行解析,可后面想着也觉得不对劲,soap协议虽说不像http协议那么普及,但是现在很多公 ...

  4. 封装Js库从获取控件的value值开始

    <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> &l ...

  5. 2016年上半年金融类App成绩单,手机银行优势尽显! (转自Analysys易观(ID:enfodesk))

    2016已悄然时过大半,金融各领域经过了开年大战,二季度末尾的6月更是几家欢喜几家愁,其中频繁出现的黑马更是足够让人惊喜.我们基于易观千帆6月移动应用大数据,筛选了百款金融类App为您揭晓TOP100 ...

  6. 3D数学基础学习之向量一

    向量-数学定义 对数学家而言,向量就是一个数字列表,对程序员而言则是另一种相似的概念,数组. 向量-几何定义 a.向量的大小就是向量的长度(模),向量的长度非负 b.向量的方向描述了空间中向量的指向. ...

  7. (转)建站知识:域名/ 空间/ IP/ 端口之间的关系

    先说域名解析吧,比如说你的域名是 www.sunnymould.com,这个域名对应着一个IP地址,域名解析就是把上面的域名转换成这个IP地址的过程,这样你就可以域名访问了上面地址上的内容了. 端口映 ...

  8. jquery判断对象是否为空并遍历对象

    javascript : if(document.getElementById("target_obj_id")){ } else { } jquery: 因为 $("# ...

  9. 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计

    在线人数统计方面的实现,最初我的想法是,管理session,如果session销毁了就减少,如果登陆用户了就新增一个,但是如果是用户非法退出,如:未注销,关闭浏览器等,这个用户的session是管理不 ...

  10. (原创)Windows和Linux间共享文件

    方法一: Windows创建目录sharedir,修改共享属性,对everyone开放读写权限. Linux下运行命令:# mount -t cifs //192.168.8.55/sharedir ...