系列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 ...
随机推荐
- MD5,BASE64Encoder加密
package com.cn.peitest; import java.io.UnsupportedEncodingException; import java.security.MessageDig ...
- 码农英语四级考了6次,也能进知名IT外企
程序员学英语 这显然不是新鲜的话题,但再怎么重复强调都不过分! 为啥要学 IT是当今世界发展最快的行业,没有之一!作为其中的从业人员,要始终保持对最新技术的关注度,难免需要阅读英文新闻或文章 平时工作 ...
- 详解Js加法运算符
简介 JavaScript是一门了不起的语言.我喜欢它的灵活性:只需以你喜欢的方式做事:更改变量类型,动态的向对象添加方法或属性,对不同的变量类型使用运算符等等. 然而动态是要付出代价的,开发人员需要 ...
- .NET 云原生架构师训练营(模块二 基础巩固 MongoDB 写入和查询)--学习笔记
2.5.3 MongoDB -- 写入和查询 写入 查询 查找操作符 逻辑操作符 其他 嵌套对象 数组 游标方法 写入 https://docs.mongodb.com/manual/tutorial ...
- Linux介绍及系统安装
1.Linux入门介绍 1.1简介 Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX(Portable Operating System In ...
- 一个坑,bootstrap selectpicker 重置下拉列表时遇到的问题
需求是这样的:点击右侧三个按钮中的任意一个,如果执行成功,左侧的版本信息就需要重新获取列表.挺简单的需求,但是遇到了一个坑, 在使用$('#id').html('')清空下拉选项并且重新赋值的时候,始 ...
- GitHub上的开源复刻:暗黑破坏神2
现在的00后少年可能已经不太了解<暗黑破坏神2>这款由暴雪打造的经典游戏. 该游戏上市的时候,国内个人家用电脑还没有那么普及,网络游戏也没有那么风靡,现在的孩子可能无法想象,那时候网吧里的 ...
- shell脚本学习之6小时搞定(6)-重定向及其他
shell学习之-重定向及其他 目录 shell学习之-重定向及其他 1.输出重定向 2.输入重定向 3.重定向深入讲解 4./dev/null 文件 5.awk Unix 命令默认从标准输入设备(s ...
- 【函数分享】每日PHP函数分享(2021-1-11)
str_shuffle() 随机打乱一个字符串. string str_shuffle ( string $str ) 参数描述 str 输入字符串.返回值:返回打乱后的字符串.实例: < ...
- Approach for Unsupervised Bug Report Summarization 无监督bug报告汇总方法
AUSUM: approach for unsupervised bug report summarization 1. Abstract 解决的bug被归类以便未来参考 缺点是还是需要手动的去细读很 ...