系列trick - 建图
对偶图
主体思想:平面图的割,等价于对偶图的路
网上有114514篇题解,这里不赘述
点变边
主体思想:点带点权,而要在点上实现一些在边上的问题,比如最小割点,将点 \(P\) 拆成 \(P_i\) 和 \(P_o\),在 \(P_i\) 和 \(P_o\) 之间连边 \(val_P\),即可转化成边权。
例题:[BJOI2016]水晶
枚举三个不合法的点,用这个 trick 做最小割点就可以了。
网络流 - 割意义
主体思想:“割”表示“不选”,用它来实现一些例如“必须同时选”,“不能怎么样选”的问题,通常是从反面用割维护不合法的,然后总和-割,得到答案。
经典例题:最大权闭合子图
你有一个图,在这个图中选择一个子图,使得子图中每一个点的出边连向的点也都包含在子图中,称这个子图为“闭合子图”
每个点带一个权,可能是负的。找到最大权闭合子图。
把正的接 \(S\),负的接 \(T\),边容量为点权绝对值。原图中的边直接连,容量为 \(INF\) (相当于禁止这条边被割掉)
用正权和-最小割,就是最大权闭合子图。
简单(而不严谨的)证明:
现在我们已证,割只会割 \(S,T\) 接的边。
首先明确什么叫“选了”。对于正权点,割了等价于不选;对于负权点,割了等价于选。原因就是建图的时候我们相当于对负权点的边权变相反数之后再加边,才导致正负有区别。
考虑割 \(S\) 中的边,用正权和-最小割之后,这个操作的意义相当于“不选某个正权点”
同理,割 \(T\) 中的边相当于,(此时我们不会割 \(S\) 中的对应边),选了 \(S\) 中的某些边,而以带上某些负权点问代价。
这显然是原问题的两种决策。接下来我们只需要证明,选出来的割边所对应的点集,一定是闭合权图,即可。
假设现在选了 \(u\),并且没选 \(u\) 的出边到达的点 \(v\)。考虑 \(4\) 种情况
- \(u+,v+\) :显然我们一定会选 \(v\),不会出现这个情况
- \(u+,v-\):没割 \(u\),没割 \(v\),此时 \(S\rightarrow u \rightarrow v\rightarrow T\) 是一条通路,与割的定义矛盾
- \(u-,v+\):显然一定会选 \(v\),不会出现这个情况
- \(u-,v-\):此时一定有一个正权点到 \(u\)的路,尽管 \(u\rightarrow T\) 断了,但是 \(u\rightarrow v\rightarrow T\) 仍然是通路,与割的定义矛盾。
综上,我们一定不会选一个非闭合子图出来。
再综上,我们一定会得到一个最大权闭合子图。
后记:这个trick,对割的基本定义要求理解深刻。
wwq:最基本的还在错,50遍
系列trick - 建图的更多相关文章
- SLAM+语音机器人DIY系列:(六)SLAM建图与自主避障导航——2.google-cartographer机器人SLAM建图
摘要 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习.在前面的学习铺垫后,终于迎来了最大乐趣的时刻,就是赋予我们的miiboo机器人能自由行走的生命.本章将围绕机器人SLAM建图.导航避障 ...
- HDU 5669 线段树优化建图+分层图最短路
用线段树维护建图,即把用线段树把每个区间都标号了,Tree1中子节点有到达父节点的单向边,Tree2中父节点有到达子节点的单向边. 每次将源插入Tree1,汇插入Tree2,中间用临时节点相连.那么T ...
- HDU 4522 (恶心建图)
湫湫系列故事——过年回家 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
- P5331 [SNOI2019]通信 [线段树优化建图+最小费用最大流]
这题真让人自闭-我EK费用流已经死了?- (去掉define int long long就过了) 我建的边害死我的 spfa 还是spfa已经死了? 按费用流的套路来 首先呢 把点 \(i\) 拆成两 ...
- 系列trick - bitmask
目录 系列trick - bitmask 拆位 位运算优化(点少的)图操作 位筛 系列trick - bitmask 拆位 主体思想:位之间不影响,把每一位拆开来考虑贡献,转化成非常容易考虑的 0/1 ...
- cartographer环境建立以及建图测试(详细级)
- 【BZOJ-1570】BlueMary的旅行 分层建图 + 最大流
1570: [JSOI2008]Blue Mary的旅行 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 388 Solved: 212[Submit ...
- 【BZOJ-4289】Tax 最短路 + 技巧建图
4289: PA2012 Tax Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 168 Solved: 69[Submit][Status][Dis ...
- CF467D Fedor and Essay 建图DFS
Codeforces Round #267 (Div. 2) CF#267D D - Fedor and Essay D. Fedor and Essay time limit per test ...
随机推荐
- springclud中附件上传
package org.springblade.desk.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import ...
- postgresql 函数集合
1.空间对象字段不建议手动创建,建议使用语句生成空间对象字段,table_name:表名,column_name:生成的列名,3857:坐标系 SELECT AddGeometryColumn ('p ...
- 22. Generate Parentheses生成指定个括号
生成指定个数的括号,这些括号可以相互包括,但是一对括号的格式不能乱(就是配对的一个括号的左括号要在左边,右括号要在右边) 思维就是从头递归的添加,弄清楚什么时候要添加左括号,什么时候添加右括号 有点像 ...
- String Boot有哪些优点
a.减少开发,测试时间和努力. b.使用 JavaConfig 有助于避免使用 XML.c.避免大量的 Maven 导入和各种版本冲突. d.通过提供默认值快速开始开发.没有单独的 Web 服务器需要 ...
- Centos7 编译安装PHP7.2
yum install wget 在 /usr/local/src 目录下载php源码包 wget http://cn2.php.net/distributions/php-7.2.4.tar.gz ...
- Bata冲刺——第一天
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE1 这个作业要求在哪里 https://edu.cnblogs.com/campus/fz ...
- ES6 proxy代理详解及用法
proxy官方的详细解释为代理器,个人理解为相当于一个拦截器,外部的所有访问必须先通过这层拦截,监视到对象的读写过程,因此提供了这 种机制对外部的访问进行过滤和修改. 上述例子为proxy new一个 ...
- Mac M1原生(ARM64)Golang dev&debug
前言 通过本文最终实现了在M1芯片的Mac mini上的Goland的开发,并通过编译源码解决了无法DEBUG的问题. Go 1.16版将正式支持Apple Silicon M1芯片,即arm64架构 ...
- Both Dolby Atmos driver and API need to be installed问题的一个解决方法
问题的原因在于缺少以下两个部分: Dolby Atmos driver:指你的声卡驱动中自带的杜比文件 如果驱动里没有,说明你的硬件可能不支持杜比,或者驱动太老没有包含杜比. Dolby Atmos ...
- 9. 细节见真章,Formatter注册中心的设计很讨巧
目录 本文提纲 版本约定 你好,我是A哥(YourBatman). Spring设计了org.springframework.format.Formatter格式化器接口抽象,对格式化器进行了大一统, ...