摘要:
一般提到动态树,我们会不约而同的想到 LCT,这算是比较通用,实用,能力较为广泛的一种写法了。当然,掌握 LCT 就需要熟悉掌握 Splay 和各种操作和知识。ETT(中文常用称呼:欧拉游览树)是一种及其睿智且暴力,可以用暴力数据结构维护的一种除了能胜任普通动态树的 Link & Cut 操作还可以 阅读全文
摘要:
【模板】动态树(Link Cut Tree) Link-cut-tree是一种维护动态森林的数据结构,在需要动态加边/删边的时候就需要LCT来维护。 Link-cut-tree的核心是轻重链划分,每条重链用一颗splay来维护。 点击查看代码 #include<bits/stdc++.h> usin 阅读全文
摘要:
CF1089I Interval-Free Permutations 求长度为 \(n\) 的、且不包含一个连续子段的排列数量。 用析合树的思路,将问题转化为计算根的儿子不足 \(n\) 个的析合树数量。 设长度为 \(n\) 的、且不包含一个连续子段的排列数量是 \(A_n\) 先讨论根是合点的情 阅读全文
摘要:
[APIO2014]连珠线 考虑一组以 \(x\) 为中点的蓝边,有两种可能: \(son[x]->x->fa[x]\) \(son[x]->x->son[x]\) 其中若有两个儿子间连边的点不存在祖先关系,那么它们就无法被连接到一起 因此所有的儿子间连边的点一定在一条链上 因此,若以链的最低点为根 阅读全文
摘要:
\(\) 计数题 BZOJ 4360 括号序列再战猪猪侠 区间 \(dp\) ,枚举区间内第一个左括号匹配的位置,前缀和差分 \(O(1)\) 判断合法性 点击查看代码 #include<bits stdc++.h> using namespace std; int T; int n,m; long 阅读全文
摘要:
定义:\({N\choose K}=\frac{N!}{K!(N-K)!}\) 为从 N 个物品中取出 K 个的方案数。 常用公式 \(\sum_{i=0}^N \binom{N}{i} = 2^N\). \(\sum_{i=0}^{N} \binom{N}{i}(-1)^i = 0\). \(\s 阅读全文
摘要:
基于拉格朗日插值的多项式求和 拉格朗日插值. 假设 \(P\) 是一个度数为 \(D\) 的多项式。如果我们知道 \(P\) 在 \(D+1\) 个不同位置的取值 \((x_1,P(x_1)),\dots, (x_D,P(x_D))\),那么我们可以唯一地把 \(P\) 写为 \[ P(x) = \ 阅读全文
摘要:
清华集训 主旋律 给定一个 \(N\) 个点的有向图,问这个图有多少个强连通子图。保证 \(N\le 15\)。 (也可以尝试去做完全图的情况:\(N\) 个点的强连通图个数。) 解法 (图里可能有 \(N^2\) 条边) 简单问题:给定一个有向图,问有多少个子图是 DAG。 DP: \(f[S]\ 阅读全文
摘要:
位运算卷积: 定义位运算卷积: 第 \(i\) 项和第 \(j\) 项的乘积贡献到第 \(i⊕j\) 项。其中 \(⊕\) 是某种位运算,即: \(S[k]=\sum_{i⊕j=k}A[i]⋅B[j]\) 记作: \(S=A*B\) 构造 \(FWT\) 变换: 尝试把位运算卷积转化成点积。 设 \ 阅读全文
摘要:
期望的线性性: $$E(x+y)=E(x)+E(y)$$ 证明: $$E(x+y)=\sum_i \sum_j(i+j)*P(i=x,j=y)$$ $$=\sum_i\sum_jiP(i=x,j=y)+\sum_i\sum_jjP(i=x,j=y)$$ $$=\sum_iiP(i=x)+\sum_j 阅读全文