首页 > 编程语言 >算法学习笔记(8.3): 网络最大流 - 模型篇

算法学习笔记(8.3): 网络最大流 - 模型篇

时间:2023-12-19 21:23:24浏览次数:38  
标签:满流 8.3 cut stackrel 网络 笔记 最小 算法 点集

本文慢慢整理部分模型。

DAG 最小路径覆盖

经典的题目,经典的思想。

网络流常见的将图上的点拆为入点和出点,那么路径由若干 出 - 入 - 出 - 入 的循环构成。

于是在拆好的图上流一流即可。

[CTSC2008] 祭祀 典中祭

黑白染色

利用黑白染色将整个图变成一个二分图是网络流常见的套路,尤其是在有 棋盘 状物出现的时候。

P3355 骑士共存问题 黑白染色,稍微搞搞就完事。

P5038 [SCOI2012] 奇怪的游戏

最小割

最大流等于最小割,这是一个对偶问题。

P5458 [BJOI2016] 水晶

最小割的构造

从源点开始在残量网络上沿着有剩余流量的边走,这会走出一个连通块。

走到的点集为 \(S\),剩下的为 \(T\),那么最小割我们只需要选择 \(S, T\) 相交的那些边即可。

由于搜索的过程沿着有剩余流量的边走,所以一定满流。

最小割的可能与一定

P4126 [AHOI2009] 最小割

可行边满足:

  • 满流
  • \(x \to y\) 没有可用流量

必要边满足:

  • 满流
  • \(S\) 可以通过有剩余流量的边走到 \(x\),而 \(y\) 可以走到 \(T\)

最小割与二选一问题

P4313 文理分科 典中典。

二选一如果是可行性那么首先联想 2-SAT,如果是收益联想最小割。

考虑最小割使得 \(S, T\) 不连通,那么对于某一个元素 \(x\),设选 \(A\) 的收益为 \(A_x\),选 \(B\) 则为 \(B_x\),那么连出类似于 \(S \stackrel{A_x}{\to} x \stackrel{B_x}{\to} T\) 的图,看是最大化还是最小化选择最小割还是其补集。

P2774 方格取数问题 差不多,不能相邻,也可以转化为 x选x 问题。

P1646 [国家集训队] happiness 令人 happy 的题。

# [Ceoi2008]order 多了一小点东西的最小割。

最小割树

如此构造,初始化当前点集 \(S\) 为所有点:

  • 随机两个点 \(x, y\),求出其最小割 \(cut\),在树上连边 \(x \stackrel{cut}- y\)。
  • 利用最小割将点集划分为小的两个点集,递归上述操作。

如此我们可以构造出一个树,使得两点之间的 \(cut\) 即是树上路径最小值。

考虑如果 \(x \to y\) 的割是 \(cut\),那么两边点的 \(cut\) 一定不大于 \(x \to y\) 的 \(cut\),否则 \(x \to y\) 就没法割掉。

然后就随便做了。

P4897 【模板】最小割树(Gomory-Hu Tree)

#2042. 「CQOI2016」不同的最小割

上下界流

见:# 算法学习笔记(8.2): 上下界网络流

CF1416F Showing Off

费用流

P3358 最长k可重区间集问题

最大权闭合子图

P2805 [NOI2009] 植物大战僵尸

P2053 [SCOI2007] 修车

P3749 [六省联考 2017] 寿司餐厅

关于特殊的性质

Bulbasaur

Make Same Set

标签:满流,8.3,cut,stackrel,网络,笔记,最小,算法,点集
From: https://www.cnblogs.com/jeefy/p/17914768.html

相关文章

  • Linux 学习笔记
    文件及权限与用户相关的文件linux下一切皆文件:一切设备抽象的进程,运行数据甚至CPU等都可以在文件系统中找到相关的文件/etc/passwd/etc/groupect:全局配置文件夹其他命令:usermod、userdel、id目录创建:mkdir文件名目录空白文件创建:touch文件名浏览文件文件系统:树形结构......
  • 代码随想录算法训练营第七天|454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和
    一、454.四数相加II题目链接:LeetCode454.四数相加II学习前:思路:首先定义两个HashMap对象record12和record34,对应的key存放两个数组元素的和,value存放计算的和出现的次数接着遍历record12,若record存在与之和为0的元素,则计算两个value相乘的结果,并进行累积,作为输出的结果......
  • 目标检测算法中的AP以及mAP值的计算
    mAP的是各个类别的AP的值的平均值#https://blog.csdn.net/qq_36523492/article/details/108469465计算方法选择第二种方法theinterpolationperformedinallpoints#定义一个列表lst=[3,1,4,2]#使用sorted函数对列表进行排序,并获取原始元素在排序后列表中的索......
  • MAUI开发笔记(二)
    今天试了一下,在MAUI上调用WEBAPI。经常一番努力,终于调用成功。不过这里面还是有很多的坑。MAUI分了好几个平台,一般来说,最容易成功的是Windows平台。坑1:HttpClient的方法总体来说,其实是用HttpClient来调用。但是HttpClient的方法使用上,也有坑。最开始我使用的是下面的一些接......
  • 阅读笔记7
    《代码大全》2介绍了软件构建的本质和复杂性。软件开发既是一门艺术,又是一门工程学科,需要在实践中不断改进。接着讲述了在软件构建之前的前期准备活动,包括需求分析、定义解决方案和设计架构等,说明软件开发过程中对需求的分析和解决方案的设计是至关重要的环节。在软件质量和编码实......
  • 刷题笔记
    1.有效的括号_20题目描述思路利用栈。按顺序遍历,遇到左括号直接入栈;遇到右括号,则与栈顶元素进行匹配,如果栈顶元素为空或者与栈顶元素不匹配,则返回false。遍历结束如果栈非空,则说明还有左括号未被匹配,返回false。复杂度时间复杂度O(n):遍历一遍字符串。空间复杂的O(n):栈使......
  • mysql笔记
    MySQL数据库B站资源网盘资源sql数据库提取码:mmmmDB、DBMS、SQL的关系DB:Database,数据库,数据库在硬盘上以文件的形式存在。DBMS:DatabaseManagementSystem,数据库管理系统,如:MySQL,Oracle,DB2,Sybase,SqlServer等。SQL:StructureQueryLanguage,结构化查询语言,是一门标准通用的......
  • 阅读笔记6
    永远以解决问题为导向,而不是仅仅完成任务。从最低级的写好一个功能,到给具体的需求排优先级,甚至到明确真正的需求,到调整开发节奏,一切都由实际的需求和开发能力决定,最终的目的只有一个,那就是解决真正的问题;把程序员当人看,不仅仅是把其他同事当人看,也要把自己当人看。人是会出错的,团......
  • 阅读笔记5
    《代码大全2》的前两章主要介绍了软件构建的基本概念、原则和流程,使我理解和应用代码的意义和方法产生了深刻的影响。在第一章中,作者强调了代码的重要性,并指出编程的目标是生成可执行代码。并通过一系列实例阐述了编程过程中的关键要素,如可读性、可维护性和可测试性。在第二章中......
  • 秦疆的Java课程笔记:78 异常 捕获和抛出异常
    异常处理五个关键词:try,catch,finally,throw,throws写一个会出错的代码:publicclassTest1{publicstaticvoidmain(String[]args){inta=1;intb=0;System.out.println(a/b);}}====运行报错====Exceptionint......