对偶图

主体思想:平面图的割,等价于对偶图的路

例题:[BeiJing2006]狼抓兔子

网上有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 - 建图的更多相关文章

  1. SLAM+语音机器人DIY系列:(六)SLAM建图与自主避障导航——2.google-cartographer机器人SLAM建图

    摘要 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习.在前面的学习铺垫后,终于迎来了最大乐趣的时刻,就是赋予我们的miiboo机器人能自由行走的生命.本章将围绕机器人SLAM建图.导航避障 ...

  2. HDU 5669 线段树优化建图+分层图最短路

    用线段树维护建图,即把用线段树把每个区间都标号了,Tree1中子节点有到达父节点的单向边,Tree2中父节点有到达子节点的单向边. 每次将源插入Tree1,汇插入Tree2,中间用临时节点相连.那么T ...

  3. HDU 4522 (恶心建图)

    湫湫系列故事——过年回家 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total ...

  4. P5331 [SNOI2019]通信 [线段树优化建图+最小费用最大流]

    这题真让人自闭-我EK费用流已经死了?- (去掉define int long long就过了) 我建的边害死我的 spfa 还是spfa已经死了? 按费用流的套路来 首先呢 把点 \(i\) 拆成两 ...

  5. 系列trick - bitmask

    目录 系列trick - bitmask 拆位 位运算优化(点少的)图操作 位筛 系列trick - bitmask 拆位 主体思想:位之间不影响,把每一位拆开来考虑贡献,转化成非常容易考虑的 0/1 ...

  6. cartographer环境建立以及建图测试(详细级)

  7. 【BZOJ-1570】BlueMary的旅行 分层建图 + 最大流

    1570: [JSOI2008]Blue Mary的旅行 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 388  Solved: 212[Submit ...

  8. 【BZOJ-4289】Tax 最短路 + 技巧建图

    4289: PA2012 Tax Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 168  Solved: 69[Submit][Status][Dis ...

  9. CF467D Fedor and Essay 建图DFS

      Codeforces Round #267 (Div. 2) CF#267D D - Fedor and Essay D. Fedor and Essay time limit per test ...

随机推荐

  1. reactor模式:主从式reactor

    前面两篇文章提到 reactor模式:单线程的reactor模式 reactor模式:多线程的reactor模式 NIO的server模式只有5个阶段,但是,NIO的selectionkey里确实有个 ...

  2. 如何在Nginx不绑定域名下使用SSL/TLS证书?

    前提 该文主要记录如何在没有购买域名的情况下使用SSL/TLS协议,即地址前面的http变成了https.但是这样的SSL协议是会被浏览器认为是不安全的.在开发或者测试环境可以这样搞,生产环境下还是乖 ...

  3. 并发编程--锁--Lock和Synchronized

    说说对于 synchronized 关键字的了解? synchronized关键字解决的是多个线程之间访问资源的同步性: synchronized 关键字可以保证被它修饰的方法或者代码块在任意时刻只能 ...

  4. 如何使用蓝湖设计稿同时适配PC及移动端

    如何使用蓝湖设计稿同时适配PC及移动端 项目需求: 一套代码同时适配PC及移动端 方案: pc端采用px布局,移动端采用rem布局,通过媒体查询(media query)切换 坑: 尝试过使用post ...

  5. gin框架的路由源码解析

    前言 本文转载至 https://www.liwenzhou.com/posts/Go/read_gin_sourcecode/ 可以直接去原文看, 比我这里直观 我这里只是略微的修改 正文 gin的 ...

  6. FastApi学习(二)

    前言 继续学习 此为第二篇, 还差些知识点就可以结束, 更多的比如用户的身份校验/ swagger 文档修改等以后会单独写 正文 使用枚举来限定参数 可以使用枚举的方式来限定参数为某几个值之内才通过 ...

  7. 行业动态 | 利用Cassandra数据库揭开家族祖先的秘密

        FamilySearch选择了基于Apache Cassandra的DataStax Enterprise (DSE)来加速用户增长,并通过更快的反应时间.高可用性以及零数据库宕机来提供强大的 ...

  8. 在IDEA中通过Module管理多个项目

    你身边有没有这种顽固的Eclipse忠实用户:IDEA不能一个窗口管理多个项目!太不方便了! 对于一个窗口同时管理多个项目的需求,在我们日常开发时候是经常需要的.尤其当我们在分布式环境下,在一个窗口中 ...

  9. CTFHub - Web(六)

    命令注入: 1.进入页面,测试127.0.0.1, 关键代码: <?php $res = FALSE; if (isset($_GET['ip']) && $_GET['ip'] ...

  10. Windows程序通用自动更新模块(C#,.NET4.5以上)

    本通用自动更新模块适合所有Windows桌面程序的自动更新,不论语言,无论Winform还是wpf. 一.工作流程:1. 主程序A调起升级程序B2. B从服务器获取更新程序列表,打印更新信息.3. B ...