自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 网络流-最小割模型-最大权闭合图问题

由最小割最大流定理,最小割等于最大流,而任一可行流的流量等于从源点流出的流量,由于源点连出的边的容量都是有限制而非正无穷,所有可行流的流量必为有限值,即最大流必为有限值,最小割也一定是有限值,所以最小割必然为简单割。建图方式:原图中所有的边的容量全置为正无穷,并在原图的基础上增加一个源点和一个汇点,源点向所有权值为正的点连容量为该点权值的边,所有权值为负的点都向汇点连容量为该点的权值的绝对值的边。下面分步证明,最小割必定为简单割,简单割和闭合子图一一对应,最小割和最大权闭合子图之间的数学关系。

2025-01-13 22:42:11 399

原创 网络流-多源汇最大流问题

证明其实很简单,对于原图中的任一可行流,我们建立虚拟源点和虚拟汇点,然后一次计算出每个源点流出的流量,然后从虚拟源点向此点流相同流量,对于虚拟汇点也如此操作,就可以建得到新图的一个可行流。反之,从新图中直接删掉源点和汇点就可以得到原图的一个可行流,这样就证明了一一对应的关系。那么主观上感觉,原图中的可行流和新图中的可行流是一一对应关系的。一般网络流题目的思考方式是比较固定的,先按照直觉和以往的做题经验建图,然后尝试证明原问题的解集和流网络中的可行流是一一对应的,最后直接打板子结局问题,难点在建图和证明。

2025-01-13 16:51:01 298

原创 网络流基本算法

当前弧优化是在每次bfs分层之后,每次dfs删除增广路的时候,由于每次搜到一个节点时,都是按照邻接表的固定顺序访问后继节点,所以在前几个节点都已经满流的情况下会出现重复遍历无用节点的情况。使用邻接表存储初始的残留网络,每次通过bfs的方式不断的搜索增广路,并且记录下当前增广路上所有的边,使每条边的容量减去这条增广路上的流量,不断地更新,直到不存在增广路为止。废点优化是指如果搜到当前节点的一个后继节点已经满流时,直接将该节点的层数置为空,保证从其他的节点搜到这个后继节点的时候不会继续去搜该点,节省时间。

2025-01-12 16:33:10 410

原创 网络流--和最大流相关的基本定义

首先可以明确一点,也就是对于可行流f对应的残留网络中的任意一条可行流f',f中的一条边f(u , v)对应f'中一对边f'(u , v)和f'(v , u),那么在叠加的时候可以先对f'做一个等价的变型,也就是将任意一对边的流量相抵消,让流量更大的边减去流量更小的边,然后将流量更小的边的流量置为0。这样就可以避免双向流量对计算的影响。割的流量定义为对于一个可行流f和该割(S , T),所有可行流中从S流向T的流量减去所有从T流向S的流量所得的值,该值就是这个可行流自身的总流量,也就是定理6.5。

2025-01-12 10:33:24 860

原创 算法竞赛-数据结构篇-基础莫队算法

首先必须要明确的是,莫队算法的使用条件--能够在O(1)复杂度内扩展到区间[ l , r ]的所有相邻区间的区间查询问题,即可以在O(1)的时间复杂度内,在已知[ l , r ]的区间信息的情况下扩展到[l - 1 , r ] , [ l , r + 1 ] , [ l + 1 , r ] , [ l , r - 1 ]这四个区间。莫队其实既很像是一种处理问题的思路,我们先把所有的询问都读入,然后根据一种特殊的规律进行排序,这个排序的规律是核心,它使得原本O(n ^ 2)的时间复杂度得到明显的简化。

2025-01-11 12:16:00 431

原创 CF2052J Judicious Watching题解报告

笔者的第一感觉是按照ddl排序,然后把所有的任务全部连续不间断的做。首先能注意到一条非常重要的性质,也就是我们能在连续的任务中间插入一个电视剧代表的区间的话,对于之前已经完成的任务和看的剧完全没有任何影响,只会对还未完成的任务产生延后的效应,所以我们只用考虑还没有完成的任务即可。对于为什么按照ddl从小到大进行排序这个问题,因为按照ddl排序构造出来的方案一定是合法的方案,不存在最后构造出来的方案是非法的,也就是完全不考虑电视剧的影响,只考虑单纯按照排序过后从前向后做的情况下都可能出现不合法情况。

2025-01-02 22:23:52 236

原创 归并排序--思想与代码实现

归并排序和快速排序是时间复杂度比较优秀的排序算法中比较常用的两个。本文将重点介绍归并排序的思想,并给出归并排序的常用代码模版。

2024-08-28 17:09:50 225

原创 快速排序算法的思想和代码实现

快速排序,从字面上讲就是快速的给数组排序的算法。想必大家最早学习的排序算法是冒泡排序,插入排序,选择排序等等,这些算法的时间复杂度都是o(n^2)的,效率较为低下。而本文要讲的快速排序算法可以在的时间复杂度内给数组排序,在效率上实现了非常大的优化。

2024-08-23 17:20:18 223

原创 算法竞赛--数据结构篇--线段树

想必有过算法竞赛学习经验的同学及读者都对线段树有所耳闻,对于线段树的难写与难调程度咬牙切齿。但是偏偏线段树还是算法竞赛中最重要的数据结构之一,用途更是非常广泛,比st表,树状数组等简单的数据结构的适用范围大很多很多。本文竭尽作者对于线段树的理解和代码经验,希望能帮助读者了解线段树的实现,建树,操作的原理。然后本文后半部分会对线段树的进阶操作进行详细的讲解,主要分为线段树的懒标记(区间修改操作),扫描线等难度和代码量更大的操作。

2024-08-08 17:20:32 753

原创 算法竞赛:数据结构篇--st表

st表的原理,应用,代码实现详解

2024-07-24 22:02:12 257 1

原创 C语言萌新的小感想

一个初学C语言的小白的自我介绍,以及编程学习方法的一些想法

2023-11-20 13:12:07 47 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除