Dydong
05
27
树链剖分 树链剖分
树链剖分 树链剖分的核心思想是把一棵树变为一个序列,树中的路径全部转化为logn段连续的区间,接下只要去用线段树或分块去维护即可。剖分有几个定义:轻重儿子:对子树的点数进行排序,最多点的即为重儿子,其它全为轻儿子;轻重边:父节点向轻重儿子
2022-05-27
27
莫队 莫队
莫队 分块简介 对序列进行根号n的拆分,接下来每一段做懒标记和单独处理,对于跨块的操作可以对整个大块进行操作,对于小块我们直接暴力修改,因此时间复杂度可以降低至m*根号n。 基本线段树改分块 #include<iostream> #
2022-05-27
16
树套树 树套树
树套树 概述树套树一般应用在当一棵树解决不了的时候,一般是利用树状数组或线段树套平衡树或线段树。 线段树套平衡树 1 l r x,查询整数 x 在区间 [l,r][l,r] 内的排名。 2 l r k,查询区间 [l,r][l,r] 内
2022-05-16
15
Splay Splay
Splay 概述 平衡树,尽量把时间复杂度压到nlogn,支持的方面有区间修改区间查询,区间翻转,区间删除,整段最大子序列,查询第K大的数,查询数是第几大。也可以运用在树套数中。 核心函数 核心思想通过判断节点的关系如果是直线则先右旋再
2022-05-15
06
Unlink Unlink
Unlink 概述unlink简称脱链,利用这个漏洞可以达成任意地址的读写,这个漏洞需要配合offbyone,堆溢等漏洞一起使用。在这里介绍一下unlink的原理。可以看到我们首先有两块被使用chuck,我们把它们设为chuck1和chun
2022-05-06
06
朱刘算法 朱刘算法
朱刘算法 概述朱刘算法也称为有向图的最小生成树,我们把其中的图称为最小树形图。它的特点是没有环,同时除了起始点外每一个点的入度都为1。它的算法流程是这样的:1.对于每一个点找一条入边为权值最小的边。2.判断选出的边是否存在环,如果无环则直接
2022-05-06
04
费用流2 费用流2
费用流2 网格图 费用流的网格图一般都是找路线,可以解决很多dp解决不了的问题,同时也可以解决数字三角形的变态魔改问题,其中最重要的是拆点限流增边。 acwing2191: ​ 梯形的第一行有 m 个数字。(相当于数字三角形第n层开始)
2022-05-04
01
费用流1 费用流1
费用流1 概述费用流,也叫作最小费用最大流,是指在普通的网络流图中,每条边的流量都有一个单价,求出一组可行解,使得在满足它是最大流的情况下,总的费用最小。做法一般都是简单地SPFA(也就是和EK算法类似),时间复杂度比较高,所以一般规模都挺
2022-05-01