随笔分类 - A_算法学习
摘要:二项式反演 如果有$g_{i} = \sum_{j = 1}^{i} \binom{i}{j}f_{j} \Longleftrightarrow f_{i} = \sum_{j = 1}^{i}( 1)^{i j} \binom{i}{j}g_{j}$ 证明: 先将1式带入2式,得到 $$f_{i}
阅读全文
摘要:扩展欧几里得是在求这么一个东西: 问: 已知$a, b$,求解一组(x, y)使得$xa + yb = gcd(a. b)$成立。 答: 设有方程$$x_{1}b + y_{1}(a \% b) = gcd(b, a \% b)$$ 则$$x_{1}b + y_{1}(a \lfloor{\frac
阅读全文
摘要:首先在学习这个之前我们需要学会trie树这个东西,详见trie树。 AC自动机就是在trie树的基础上建立起来的。 先看几个定义: 1,fail指针:这个指针指向 等于当前串的某一后缀的串中,深度最大的那个串。因为在trie树上任意一个点都可以代表从root到这个点所构成的串,所以假设我们现在有ab
阅读全文
摘要:简而言之,trie树就是把字符当做点的树。 一般而言,我们建trie树都是在树上插入很多个字符串,再利用trie树的性质来做题。 对于任意一个字符串,我们的插入规则如下:(此处默认所有字符串都只有小写字母) 一开始我们在根节点0. 假设当前所在的点为x,当前遍历到的字符为c。 1,我们先检测x这个节
阅读全文
摘要:基数排序是一种复杂度为n * max(每个数的位数)的优秀算法,平常用的不多,但求后缀数组的时候为了达到nlogn的复杂度一般都会采用基数排序,因此还是很有必要学一下的。 大概的意思就是说,对于一个数列而言,我们先以个位数为权值桶排一遍得到一个新的排列,然后再在这个排列的基础上以十位数为权值桶排一遍
阅读全文
摘要:很久之前一直觉得斜优很难理解,,,今天再看发现好像是挺好理解的。 不过如果x不单调就要用splay或者cdq维护了,,,,依旧很恶心。、 先讲最基础的斜优吧,不单调的以后再填坑。 先来看一道例题:CF311B Cats Transport 斜率优化DP 当我们得到DP方程$f[i][j] = f[i
阅读全文
摘要:复习逆元…… 逆元 求法: 1,快速幂 根据费马小定理有$a^{p - 1} \equiv 1 \quad (mod \quad p)$,把左边拆开一下得到 \(a \cdot a^{p - 2} \equiv 1 \quad (mod \quad p)\) 因此$a^{p - 2}$为$a$在$m
阅读全文
摘要:[TOC] 计算公式: $$h_{n} = h_{0} \cdot h_{n 1} + h_{1} \cdot h_{h 2} + ... + h_{n 1} \cdot h_{0}$$ $$h_{n} = h_{n 1} \cdot (4n 2) / (n + 1)$$ $$h_{n} = \fr
阅读全文
摘要:在考场上遇到了这个的板子题,,,所以来学习了一下线段树分治 + 带撤销的并查集。 题目大意是这样的:有m个时刻,每个时刻有一个加边or撤销一条边的操作,保证操作合法,没有重边自环,每次操作后输出当前图下所有联通块大小的乘积。 首先观察到如果没有撤销操作,那么直接用并查集就可以维护,每次合并的时候乘上
阅读全文
摘要:update in 2019.1.21 优化了一下文中年代久远的代码 的格式…… 什么是决策单调性? 在满足决策单调性的情况下,通常决策点会形如1111112222224444445555588888..... 即不可能会出现后面点的决策点小于前面点的决策点这种情况。 那么这个性质应该如何使用呢?
阅读全文
摘要:kruskal重构树是一个比较冷门的数据结构。 其实可以看做一种最小生成树的表现形式。 在普通的kruskal中,如果一条边连接了在2个不同集合中的点的话,我们将合并这2个点所在集合。 而在kruskal重构树中,如果一条边连接了在2个不同集合中的点,我们将新建一个节点出来,并用这个新节点作为一个中
阅读全文
摘要:$$(x + y) ^ k = \sum_{i = 0}^{k}C_{k}^{i} \cdot x^i \cdot y^{k - i}$$ 一个很容易理解的推导方式是:$(x + y) ^ k = (x + y)(x + y)(x + y)...$,化简之后的每一个数都是分别从每个括号中取一个数出来
阅读全文
摘要:顾名思义,带上下限网络流即对于网络流中的每一条边,都带有流量的上界和下界。 普通的网络流可以看做下界为0的上下限网络流。 1,无源汇带上下界可行流。 定义一个数组d[x]表示图中点x的入度下限和-出度下限和。 建图方式为: 对于图中每一条边,都连流量为上界-下界的边,并在加边的时候统计d[x]。 对
阅读全文
摘要:虚树听起来是一个很高大上的东西,实际上实现起来是比较简单的。 大致的意思是说,对于一棵树而言,也许每次询问我们只需要用到其中的部分节点,因此如果每次询问我们要对全部的节点都做一次处理的话,显然会造成浪费,且很可能会超时。 这时就需要虚树了。 因为有些节点是完全无用的,但你又不能因此毁了原树——说不定
阅读全文
摘要:st表是一种基于倍增思想的DP。 用于求一个数列中的某个区间的最大/最小值。 用st[i][j]表示从第i个开始往后2^j个点,最大的是多少。 我们令k[i]表示2^i等于多少 那么有转移方程 st[i][j] = max(st[i][j - 1], st[i + k[i - 1]][j - 1])
阅读全文
摘要:复习一下,,, 刚开始学树链剖分的时候想了好久都没明白。 实际上树链剖分也不是什么很高大上的东西,懂了还是很简单的。 其实这就是一个对树进行遍历并编号的过程。 同时为了方便(跟复杂度相关?),每次都优先选择重儿子进行编号。 接下来就是具体过程了。 首先是一些概念: 1,重儿子 我们令点x的所有儿子中
阅读全文
摘要:,,,本来只是想安静的做道题,,,结果是道最小树形图? 只好学习最小树形图了。 我们先来了解一下定义: 现在有一个有向图G(V,E),它具有如下性质: 1,没有环。 2,存在一个点x,它没有入度,且对于其他的点,有且只有一个入度。 此时x为树形图G的root 简单来说最小树形图就是给你一张图,让你找
阅读全文
摘要:什么是0/1分数规划? 大概就是这样一类问题: 有一堆物品,选择一个物品都有一个收益ai,有一个代价bi, 选择若干个(也可能有限制)物品, 使得最小(大) 看上去很难的样子? 其实化一下式子就变简单啦! 我们设,显然当满足式子的x最小的时候,就最小了 我们移一下项: >$\sum_{i = 1}^
阅读全文
摘要:大概内容是要维护一个数组,支持如下操作: 查询某个位置上的数 修改某个位置上的数 回到某个版本的数组(可持久化) 预备知识:平衡树(非必要,了解最好),主席树 为了维护这个结构,我们可以考虑使用主席树, 建树的时候按照下标来建(维护下标),此处类似于平衡树 要查询指定位置就按照找第k大,同样类似于平
阅读全文

浙公网安备 33010602011771号