- 博客(13)
- 问答 (1)
- 收藏
- 关注
原创 LCT复杂度分析
LCT复杂度分析首先对维护的树进行重链剖分。定义节点 xxx 的权值 w(x)w(x)w(x) 为其下方挂的虚儿子的子树大小和加 111 。定义权值 s(x)s(x)s(x) 为 xxx 在所属 splaysplaysplay 中对应子树的 www 和。取势函数 Φ=Φ1+Φ2\Phi=\Phi_1+\Phi_2Φ=Φ1+Φ2 ,其中 Φ1\Phi_1Φ1 为 “重虚边” 的个数, Φ2=∑u∈Tlogs(u)\Phi_2=\sum_{u\in T}\log s(u)Φ2=∑u∈Tlogs(
2021-03-17 20:36:31
687
原创 均值不等式学习笔记
从大到小依次为:平方平均数、算数平均数、几何平均数、调和平均数。∑ai2n≥∑ain≥∏ain≥n∑1ai\sqrt{\dfrac{\sum a_i^2}n}\ge\dfrac{\sum a_i}n\ge\sqrt[n]{\prod a_i}\ge \dfrac n{\sum\frac1{a_i}}n∑ai2≥n∑ai≥n∏ai≥∑ai1n引理一n∑ai2≥(∑ai)2\displaystyle n\sum a_i^2\ge\left(\sum a_i\right)^2n∑a
2020-10-22 21:20:36
277
原创 左偏树学习笔记
左偏树是一种基于二叉树的可并堆。定义一个节点的“距离” disxdis_xdisx 为它到空节点的最短路长度,左偏树强制要求 dislson≥disrsondis_{lson}\ge dis_{rson}dislson≥disrson,所以 disx=disrson+1dis_x=dis_{rson}+1disx=disrson+1。可以证明,disx=O(logsize)dis_x=O(\log size)disx=O(logsize),其中 sizesizesize 为子树 xxx 的大
2020-10-15 23:35:07
97
原创 树状数组学习笔记
文章目录原理代码实现(单点修改区间查询)树状数组上二分代码实现卡常应用代码实现原理树状数组(binary index tree)可以以极小常数在 log\loglog 时间内维护前缀信息。定义 lowbit(x)\operatorname{lowbit}(x)lowbit(x) 表示 xxx 的最低的二进制位,如lowbit(2)=2,lowbit(3)=1\operatorname{lowbit}(2)=2,\operatorname{lowbit}(3)=1lowbit(2)=2,low
2020-10-06 22:14:12
139
1
原创 主定理学习笔记
主定理是分析分治算法复杂度的一个工具。设分治的时间复杂度为 T(n)T(n)T(n),其中 nnn 为数据规模,且满足递推式:T(n)=aT(nb)+O(nd)T(n)=aT(\dfrac nb)+O(n^d)T(n)=aT(bn)+O(nd)则有T(n)={O(nd)logba<dO(ndlogbn)logba=dO(nlogba)logba>dT(n)=\begin{cases}O(n^d)&&&\log_ba<d\\O(n^d\log_b
2020-10-06 20:58:57
123
原创 树的直径及一点性质
树的直径及一点性质定义求法树上DP两遍dfs小性质&证明性质&证明定义树中最长的简单路径,可能有多个。很多时候也指这个路径的长度。求法树上DP两遍dfsdfsdfs瞎搞一通,第一遍求出每个节点向下走到儿子的最远距离,第二遍求出每个节点先走到父亲的最远距离。比下面的难写亿倍。两遍dfs从任意一点ppp出发,找到最远点qqq,再任找一个到qqq的最远点rrr,则(r,q)(r,q)(r,q)为一条直径。小性质&证明从任意一点ppp出发,找到最远点qqq,则一定有一条直径
2020-08-13 22:06:08
664
原创 扩展欧拉定理学习笔记
扩展欧拉定理的一种证明(不保证不是伪证)扩展欧拉定理:当n>φ(m)n>\varphi(m)n>φ(m)时,an≡a(nmod φ(m))+φ(m)(modm)a^n\equiv a^{(n\mod {\varphi(m)})+\varphi(m)}\pmod man≡a(nmodφ(m))+φ(m)(modm)先考虑这个式子的意义(%%%lzy\%\%\%lzy%%%lzy)。显然,数列aimod ma^i\mod maimodm存在循环节。设循环节开始于ara^rar,长度为
2020-08-03 11:41:01
121
原创 后缀自动机学习笔记
后缀自动机一个串的后缀自动机是恰能接受所有这个串的后缀的自动机。当然也可以稍作修改,使其能接受所有子串。一个暴力做法是O(n2)O(n^2)O(n2)建TrieTrieTrie树,但我这里讲的是一种O(n)O(n)O(n)的NB(NoBook)NB(NoBook)NB(NoBook)算法。(不会吧不会吧……应该不会有人以为这是算法名吧……)一些约定本文中所有子串均指“本质不同子串”。本文认为自己可以是自己的后缀/祖先,但不能是自己的真后缀/真祖先(瞎造名词ing{ing}ing)。后缀可以
2020-07-31 15:23:35
101
原创 Splay时间复杂度证明
高能预警! 需要前置知识“摊还分析”和“splay”文章目录前置小结论一些约定各种情形下势函数变化量zig/zagzig-zig/zag-zagzig-zag/zag-zig单次splay(以及插入/删除等操作)的摊还代价闲得蛋疼---卡评测机前置小结论logx+logy≤2log(x+y)−2\log x+\log y \le 2log (x+y)-2logx+logy≤2log(x+y)−2容易看出这其实与4xy≤(x+y)24xy\le (x+y)^24xy≤(x+y)2等价,即与(x−y
2020-06-30 22:08:02
946
原创 多项式全家桶学习笔记
文章目录泰勒展开多项式牛顿迭代多项式乘法泰勒展开定义f(x)=∑i≥0nf(i)(x0)(x−x0)ii!f(x)=\Large\sum\limits_{i\ge0}^n \frac{f^{(i)}(x_0)(x-x_0)^i}{i!}f(x)=i≥0∑ni!f(i)(x0)(x−x0)i多项式牛顿迭代给定函数G(x)G(x)G(x),求n−1n-1n−1次多项式F(x)F(x)F(x),使得G(F(x))≡0(mod xn)G(F(x))\equiv 0(\mod x^n)G(F(x))
2020-06-26 22:40:00
437
1
原创 NAMERENA
#include <cstdio>#include <cstdlib>#include <ctime>#include <cstring>#include <conio.h>#include <windows.h>using namespace std;inline int RAND_RANGE(int x, ...
2019-09-22 13:48:36
317
原创 弹跳窗口病毒
KMP字符串匹配问题: 给定字符串S与模式串P, 求P在S中出现几次(|S|, |P| <= 106)显然暴力直接T飞(1012可不是闹着玩的)我们需要优化
2019-09-02 21:41:09
271
空空如也
我的vim缩进炸了!一次出两个tab
2020-08-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人