• [学习笔记]最小割之最小点权覆盖&&最大点权独立集


    最小点权覆盖

    给出一个二分图,每个点有一个非负点权

    要求选出一些点构成一个覆盖,问点权最小是多少

    建模:

    S到左部点,容量为点权

    右部点到T,容量为点权

    左部点到右部点的边,容量inf

    求最小割即可。

    证明:

    每一个割集,对应选择一些点,对应一个覆盖。

    每个覆盖有不同的代价,选择最小的就是最小点覆盖

    每个割集有不同的代价,选择最小的就是最小割

    由于割集和覆盖一一对应

    所以,这个新图的最小割,就对应原图的最小点覆盖。

    最大点权独立集

    给出一个二分图,每个点有一个非负点权

    要求选出一些点构成一个独立集,问点权最大是多少

    建模:

    等于:总权值-最小点权覆盖

    证明:

    扔掉覆盖的点的剩余点一定是一个独立集

    而且,根据覆盖=点数-独立集

    对于一个固定的点覆盖,独立集已经不能更大。

    所以,一个固定的点覆盖下,最大独立集是确定的。两者呈现一一对应的关系。

    而总权值不变,所以选择扔掉的覆盖集总权值最小即可。

    所以,最大点权独立集=总权值-最小点权覆盖

    例题:

    方格取数问题

    在一个有m*n 个方格的棋盘中

    每个方格中有一个正整数

    现要从方格中取数,使任意2 个数所在方格没有公共边

    求取出的数的总和最大是多少。

    题解:

    将棋盘国际象棋黑白染色

    然后连边

    然后最大点权独立集即可。

  • 相关阅读:
    Android 自定义View手写签名并保存图片
    快速定位iOS线上BUG在哪个控制器崩溃
    最简单的iOS网络请求
    ButterKnife的安装与使用以及ButterKnife右键不显示的大坑
    安卓两个build.gradle的区别
    苹果电脑获取Android Studio的发布版SHA1和开发版SHA1
    AppStore下载Xcode的文件
    webp转png或jpg
    让Xcode日志输出中文
    iOSPush自动隐藏tabbar
  • 原文地址:https://www.cnblogs.com/Miracevin/p/10026402.html
Copyright © 2020-2023  润新知