摘要: 概述 我们有一张图,要求从源点流向汇点的最大流量(可以有很多条路到达汇点),就是我们的最大流问题。 Ford Fulkerson 增广路算法 该方法通过寻找增广路来更新最大流,有EK,dinic,SAP,ISAP主流算法。 求解最大流之前,我们先认识一些概念。 残量网络 首先介绍一下一条边的剩余容量 阅读全文
posted @ 2020-02-27 22:10 优秀的渣渣禹 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 给定一个网络$G =(V,E)$,每条边除了有容量限制$c(u,v)$,还有一个单位限制$w(u,v)$ 当$(u,v)$的流量为$f(u,v)$时,需要花费$f(u,v)×w(u,v)$,$w$也满足斜对称性,即$w(u,v) = w(v,u)$ 则该网路中总花费最小的最大流称为 最小费用最大流 阅读全文
posted @ 2020-02-27 18:56 优秀的渣渣禹 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 后缀数组主要是两个数组:$sa$和$rk$ 其中,$sa[i]$表示将所有后缀排序后第$i$小的后缀的编号,$rk[i]$表示后缀$i$的排名 这两个数组满足性质:$sa[rk[i]] = ra[sa[i]] = i$ 后缀数组示例: 后缀数组的求法 $O(n^2logn)$做法: 这个做法大家都会 阅读全文
posted @ 2020-02-23 22:38 优秀的渣渣禹 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 替罪羊树是一种依靠重构操作维持平衡的重量平衡树。替罪羊树会在插入、删除操作时,检测净土的节点,若发现失衡,则将以该节点为根的子树重构。 序言: 我们知道在一棵平衡的二叉搜索树内进行查询等操作时,时间就可以稳定在$log(n)$但是每一次的插入和删除节点,都会使得这棵树不平衡,最会情况就是退化成一条链 阅读全文
posted @ 2020-02-18 22:36 优秀的渣渣禹 阅读(424) 评论(9) 推荐(1) 编辑
摘要: 莫比乌斯反演是数论中的重要内容。对于一些函数$f(n)$,如果汉南直接求出它的值,而容易求出其背书和或约数和$g(n)$,那么可以通过莫比乌斯反演简化运算,求得$f(n)$的值。 我们需要一些前置知识: 积性函数、狄利克雷卷积、莫比乌斯函数 前置芝士 引理1 $$ \forall a,b,c \in 阅读全文
posted @ 2020-02-13 22:56 优秀的渣渣禹 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 引言: 什么是CDQ分治?其实这是一种思想而不是具体算法,因此CDQ分治覆盖的范围相当广泛,在 OI 界初见于陈丹琦 2008 年的集训队作业中,故被称为CDQ分治。 大致分为三类: + cdq分治解决与点对有关的问题 + cdq分治优化1D/1D 动态规划的转移 + 通过 cdq 分治,将一些动态 阅读全文
posted @ 2020-02-11 19:48 优秀的渣渣禹 阅读(931) 评论(0) 推荐(0) 编辑
摘要: 这篇文章讲无权二分图的最大匹配和完美匹配,以及用于求解匹配的匈牙利算法 二分图: 简单来说,如果图中的点可以被分为两组,并且使得所有边都跨越组的边界,那么这就是一个二分图。准确地说:把一个图的顶点划分为两个不相交集合$U$和$V$,使得每一条边都分别连接$U、V$中的顶点,如果存在这样的划分,那么这 阅读全文
posted @ 2020-02-09 20:36 优秀的渣渣禹 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 网络流 网络 区分两个概念: 网络 (或者流网络 Flow Network)与 网络流 (Flow)的概念。 网络是指一个有向图$G = (V,E)$。 每条边$(u,v) \in E$ 都有一个权值$c(u,v)$,称之为容量,当$(u,v) \notin E$时有$c(u,v)=0$。 其中有两 阅读全文
posted @ 2020-01-24 10:10 优秀的渣渣禹 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 基础BSGS 用处是什么呢w 大步小步发(Baby Step Giant Step,简称BSGS),可以用来高效求解形如$A^x≡B(mod C)$(C为素数)的同余方程。 常用于求解离散对数问题。形式化地说,该算法可以在$O(\sqrt{n})$用于求解。 接下来是 算法过程 首先我们讨论的都是( 阅读全文
posted @ 2020-01-20 22:47 优秀的渣渣禹 阅读(228) 评论(0) 推荐(0) 编辑
摘要: $fhq treap$ 复习一下fhq treap fhp treap 就是一种不旋转的treap,所以也就有treap的性质——BST + 堆,然后用拆分+合并代替treap的旋转操作 其优点在于: 支持区间,效率高, 可持久化 下面是需要的变量 操作一 : split(拆树 将一棵树拆成两个 c 阅读全文
posted @ 2020-01-17 20:57 优秀的渣渣禹 阅读(260) 评论(1) 推荐(1) 编辑