[学习笔记]最小割之最小点权覆盖&&最大点权独立集
最小点权覆盖
给出一个二分图,每个点有一个非负点权
要求选出一些点构成一个覆盖,问点权最小是多少
建模:
S到左部点,容量为点权
右部点到T,容量为点权
左部点到右部点的边,容量inf
求最小割即可。
证明:
每一个割集,对应选择一些点,对应一个覆盖。
每个覆盖有不同的代价,选择最小的就是最小点覆盖
每个割集有不同的代价,选择最小的就是最小割
由于割集和覆盖一一对应
所以,这个新图的最小割,就对应原图的最小点覆盖。
最大点权独立集
给出一个二分图,每个点有一个非负点权
要求选出一些点构成一个独立集,问点权最大是多少
建模:
等于:总权值-最小点权覆盖
证明:
扔掉覆盖的点的剩余点一定是一个独立集
而且,根据覆盖=点数-独立集
对于一个固定的点覆盖,独立集已经不能更大。
所以,一个固定的点覆盖下,最大独立集是确定的。两者呈现一一对应的关系。
而总权值不变,所以选择扔掉的覆盖集总权值最小即可。
所以,最大点权独立集=总权值-最小点权覆盖
例题:
方格取数问题
在一个有m*n 个方格的棋盘中
每个方格中有一个正整数
现要从方格中取数,使任意2 个数所在方格没有公共边
求取出的数的总和最大是多少。
题解:
将棋盘国际象棋黑白染色
然后连边
然后最大点权独立集即可。
[学习笔记]最小割之最小点权覆盖&&最大点权独立集的更多相关文章
- POJ3308 Paratroopers(最小割/二分图最小点权覆盖)
把入侵者看作边,每一行每一列都是点,选取某一行某一列都有费用,这样问题就是选总权最小的点集覆盖所有边,就是最小点权覆盖. 此外,题目的总花费是所有费用的乘积,这时有个技巧,就是取对数,把乘法变为加法运 ...
- ZOJ 3792 Romantic Value 最小割(最小费用下最小边数)
求最小割及最小花费 把边权c = c*10000+1 然后跑一个最小割,则flow / 10000就是费用 flow%10000就是边数. 且是边数最少的情况.. #include<stdio. ...
- bzoj2229: [Zjoi2011]最小割(分治最小割+最小割树思想)
2229: [Zjoi2011]最小割 题目:传送门 题解: 一道非常好的题目啊!!! 蒟蒻的想法:暴力枚举点对跑最小割记录...绝对爆炸啊.... 开始怀疑是不是题目骗人...难道根本不用网络流?? ...
- BZOJ_1797_[Ahoi2009]Mincut 最小割_最小割+tarjan
BZOJ_1797_[Ahoi2009]Mincut 最小割_最小割+tarjan Description A,B两个国家正在交战,其中A国的物资运输网中有N个中转站,M条单向道路.设其中第i (1≤ ...
- bzoj1001/luogu4001 狼抓兔子 (最小割/平面图最小割转对偶图最短路)
平面图转对偶图:先在原图中加一个s->t的边,然后对每个面建一个点,对每条分隔两个面的边加一条连接这两个面对应点的边,边权等于原边权. 然后从刚才加的s->t分割出来的两面对应的两个点跑最 ...
- bzoj4519: [Cqoi2016]不同的最小割(最小割树)
传送门 好神仙……最小割树是个什么东西…… 其实我觉得干脆直接$O(n^2)$跑几个dinic算了…… 来说一下这个叫最小割树的神奇东西 我们先建一个$n$个点,没有边的无向图 在原图中任选两点$s, ...
- BZOJ4519 CQOI2016不同的最小割(最小割+分治)
最小割树:新建一个图,包含原图的所有点,初始没有边.任取两点跑最小割,给两点连上权值为最小割的边,之后对于两个割集分别做同样的操作.最后会形成一棵树,树上两点间路径的最小值即为两点最小割.证明一点都不 ...
- BZOJ1797 [Ahoi2009]Mincut 最小割 【最小割唯一性判定】
题目 A,B两个国家正在交战,其中A国的物资运输网中有N个中转站,M条单向道路.设其中第i (1≤i≤M)条道路连接了vi,ui两个中转站,那么中转站vi可以通过该道路到达ui中转站,如果切断这条道路 ...
- 【bzoj4519】[Cqoi2016]不同的最小割 分治+最小割
题目描述 学过图论的同学都知道最小割的概念:对于一个图,某个对图中结点的划分将图中所有结点分成两个部分,如果结点s,t不在同一个部分中,则称这个划分是关于s,t的割.对于带权图来说,将所有顶点处在不同 ...
随机推荐
- Hadoop(24)-Hadoop优化
1. MapReduce 跑得慢的原因 优化方法 MapReduce优化方法主要从六个方面考虑:数据输入.Map阶段.Reduce阶段.IO传输.数据倾斜问题和常用的调优参数. 数据输入 Map阶段 ...
- scala成长之路(2)对象和类
scala提供了一种特殊的定义单例的方法:object关键字 scala> object Shabi{ | val age = 0 | val name = "shabi" ...
- Elasticsearch 常用API
1. Elasticsearch 常用API 1.1.数据输入与输出 1.1.1.Elasticsearch 文档 #在 Elasticsearch 中,术语 文档 有着特定的含义.它是指最顶 ...
- HDSF读写文件
HDFS 读取文件 HDFS的文件读取原理,主要包括以下几个步骤: 1.首先调用FileSystem对象的open方法,其实获取的是一个DistributedFileSystem的 实例. 2.D ...
- 基于设备树的led驱动程序
#include <linux/module.h> #include <linux/kernel.h> #include <linux/fs.h> #include ...
- 字典树(Trie)的学习笔记
按照一本通往下学,学到吐血了... 例题1 字典树模板题吗. 先讲讲字典树: 给出代码(太简单了...)! #include<cstdio> #include<cstring> ...
- 用filter()筛选出素数
'use strict'; function get_primes(arr) { return arr.filter(function isPrime(number) { if (typeof num ...
- 为WPF中DropShadowBitmapEffect提供轻量级的替代品
原文:为WPF中DropShadowBitmapEffect提供轻量级的替代品 为WPF中DropShadowBitmapEffect提供轻量级的替代品 ...
- ExtJs工具篇(3)——Aptana Studio3乱码的问题
在Aptana Studio里面使用,发现输入的中文是乱码,在浏览器中浏览也是乱码,想着肯定是编码的问题,但是一直没有找到在那个地方设置.以为汉化后就可以了,没想到汉化后竟然还是乱码, ...
- 获取已安装app的bundle id
备注:以下是私有api 苹果审核会被拒绝. 导入头文件 #import <objc/runtime.h> /// 获取其他APP信息(iOS11无效) + (NSArray *)getOt ...