随笔分类 - 知识点
摘要:## 二元线性规划问题转网络流:对于 $n$ 个变量 $x_i$,限制形如 $x_i-x_j\ge b$ 或 $x_i\ge b$ 或 $x_i\le b$,求 $\sum c_ix_i$ 的最小值,可以转化成上下界最大费用流求解。 首先重温线性规划问题的一般形式(之一): $$ \begin{al
阅读全文
摘要:线性基求交:设 \(A,B\) 为两个线性基,\(V_A,V_B\) 分别为其生成空间,则 \(V_C=V_A\cap V_B\) 是一个线性空间,称 \(A\) 与 \(B\) 两个线性基的交为 \(C\)。 首先证明 \(V_C\) 是一个线性空间。其实很显然,对于任意 \(x,y\in V_C
阅读全文
摘要:支配树:在 \(O(n\log n)\) 时间内求出一张有向图中能切断一个点到起点的所有路径的点 具体地,先定义一个起点 \(S\)(要求它能到达所有点),对于图中一个点 \(u\),存在一些点 \(v\),使得删去某个 \(v\) 后 \(S\) 无法走到 \(u\),这些点 \(v\) 所组成的
阅读全文
摘要:反悔贪心:在确保能反悔以贴合全局最优解的前提下,选择局部最优解 (理论上来说,这种算法要建出费用流模型才能保证正确性,但是。。) 不好说,上例题: P7219 [JOISC2020] 星座 3 首先发现每个 $y$ 坐标小的点会对其上方的一个矩形形成限制,就是不能同时存在点。我们对每个点记录它被限制
阅读全文
摘要:拉格朗日乘子法:计算多变量函数最值 设要优化的函数为 $f(x_1,x_2,\dots,x_n)$,有限制 $g(x_1,x_2,\dots,x_n)=0$。 凭空引入拉格朗日乘子 $\lambda$ ,令 $h(x_1,x_2,\dots,x_n)=f(x_1,x_2,\dots,x_n)+\la
阅读全文
摘要:后缀自动机:可以接受一个字符串 $s$ 的所有子串的自动机 后缀树:将一个字符串的所有后缀编成一个**压缩**后的 Trie 后缀自动机性质: 1. 由不超过 $2n-1$ 个点构成(所以数组要开2倍) 2. 每个节点是个 endpos 集合,表示其中所有字符串在 $s$ 中结束的位置的集合 3.
阅读全文
摘要:线段树历史区间最值:支持区间加法,询问区间内历史上的最大值,清空历史 不要草率!!!比看上去的要难无数倍!!! 注意事项: 1. 一定要记录两个标记 $tag$ 和 $mxtag$,分别为“区间加标记”和“区间最大加标记”(后者也可以理解为这个区间内所有来过的加标记的前缀最大值) 2. 正确的 pu
阅读全文
摘要:分治FFT:在 $O(n \log^2 n)$ 的时间内求出类似于 $f_i=\sum\limits_{j=0}^{i-1}g(i-j)f(j)$ 之类的递推式 思想:同 CDQ 分治的思想,先分成左半边和右半边,先处理左半边,然后计算左半边对右半边的影响,最后处理右半边。 注意事项: 1. 不是所
阅读全文
摘要:这里的小Min_25筛,可以筛出 $10^11$ 以内所有质数的完全积性函数之和 注意事项: 1. cmd 的题解里面下标写得不清楚,应该是 $S'(p_k-1,k-1)$ 而不是 $S'(p_{k-1},k-1)$,调了1hrswwwwww 2. 不需要预处理质数,通过 $res1[i]==res
阅读全文
摘要:势函数:对 $i=[1,n]$ 自定义 $f(i)$,使得每一步势能变化期望 +1/-1,通过求初态与终态的势能差求期望步数 注意:这里的 $f(i)$ 是可以自拟的,即只要满足每一步势能变化期望为 +1/-1 即可! 所以说,这本质上是通过人类智慧定义这么一个函数! 常见形式:$\sum\limi
阅读全文
摘要:KD-Tree,是用来维护一个空间(其实一般是平面)中的信息的数据结构。 以下就 2D-Tree 进行讨论。(盲猜并不会考 3D 及以上) 思想:将一个大矩形以一种方式划分成若干个小矩形,然后询问时只查询与询问矩形有交的小矩形。 每次轮流砍开 x 坐标和 y 坐标,分成左右点的个数相等的两半。 注意
阅读全文
摘要:一个矩阵的特征多项式,为 $det(A-Iz)$,这是一个关于 $z$ 的 $n$ 次多项式。 求的时候的注意点: 1. 消元形成上海森堡矩阵,即对于 $i=2,3,\dots,n,j \leq i-1,a[i][j]=0$。 形象一点: X X X X X X X X X X 0 X X X X
阅读全文
摘要:不用说了,直接上怎么 die( 千万不要和 Treap 一样写左旋 zig 和右旋 zag,莫名死亡。Splay 只支持一个 rotate 上旋一个节点即可。 splay() 之前记得弄一个栈存储 u 到根的 splay 路径,倒序把 flip 标记全部推下来。 access() 中 u 在往上爬的
阅读全文
摘要:面对“$n$ 个数中选 $k$ 个数”之类的问题,脑子里第一个想到指数型生成函数。 重要技巧:进行一个游戏,进行的期望次数=Σ(进行 i 次还没有停止的概率)。 证明:阿贝尔变换即可。 于是就可以设 $P(i)$ 为进行 $i$ 次的概率,令 $F(z)=\sum\limits_{i \geq 0}
阅读全文
摘要:杜教筛:在 $O(n^{2/3})$ 的时间内求出积性函数 $f(x)$ 的前缀和。 注意事项: 1. 线性预处理 $n^{2/3}$ 内的所有 $f$ 的值再开始筛。 2. 一定要用一个数组(而不是 map)来记忆化,对于所有 $d$ 记忆 $n/d$ 处的 $f$ 前缀和。 3. 如果有多次询问
阅读全文
摘要:FFT Fast Foulier Transformation 以 $O(n \log n)$ 的速度计算 $\forall k=1,2,\dots,n, c[k]=\sum\limits_{i=0}^{k} a[i]b[k-i]$ **command_block 大神's blog** 记住,要
阅读全文
摘要:所谓长链剖分,就是给每个节点标记一个深度最深的长儿子。 长链剖分的优势:对于可以 $O(1)$ 从一个儿子继承所有所需信息的 dp,用长链剖分,更新时直接 $O(1)$ 继承长儿子的信息,其余儿子的信息暴力继承即可。 时间复杂度 $O(\sum\limits_{u} \sum\limits_{v \
阅读全文
摘要:特别适用于背包类问题,尤其是树上背包。 若出现 $f_{u,i}=\sum\limits_{v_1,v_2, \dots,v_{s} \in son(u)} \sum\limits_{j_1+j_2+ \dots +j_{s}=i} {f_{v_1,j_1}f_{v_2,j_2}\dots f_{v
阅读全文
摘要:李超树是一种可以动态插入直线并支持查询一个x坐标处最大值的数据结构。 实现时,注意不要判断两直线的交点与 $mid$ 的关系,而是要判断区间两端点处两直线 $y$ 坐标的关系。否则当交点为 $mid$ 时极易出错。
阅读全文

浙公网安备 33010602011771号