- 博客(8)
- 收藏
- 关注
原创 Link/Cut Tree
从辅助树根出发,只要有实边就向左走,最终到达的点即为根。LCT(Link/Cut-Tree),又名实链剖分。像这类问题,存在加边和删边操作,被称为动态树问题。由于辅助树上的节点按中序遍历标记深度,那么。中存在一个细节:所有路径上的点都为右儿子。不多说,但有一点不一样,已在代码中标注。构成的,多个辅助树结构就构成了森林。有了前面的函数,这两个函数很好解决。前置知识:Splay,树链剖分。原树的根位于辅助树根节点所在。到根节点的所有边都变为实边。想要成为根,就要反转这颗。如图,现在我们有一棵原树。
2024-01-22 22:38:12
1044
1
原创 快速沃尔什变换(FWT)
其中, ⊕表示任意位运算符号(与(&),或(|),异或(^)之一)的形式,相乘后再用逆变换转换成多项式形式。是用于解决对下表进行位运算卷积问题的方法。采用分治策略,每一次将多项式分为左半边。且就是说可以通过按位相乘的方式,以。接下来要解决的是如何求一个多项式的。如图所示,先分别计算两边的值,由于。以下会对三种位运算符号分别推导。其一定满足左半边下标最高位为。更确切地说,给定两个多项式。,右半边下标最高位为。,所以最终合并的结果为。同上或的递推式,由于。
2024-01-21 21:18:35
1706
1
原创 快速傅里叶变换(FFT)
设i2−1i^2 = -1i2−1,则一个复数表示为abiab∈Rabiab∈R其中bibibi为虚部,aaa为实部复平面上,从00(0,0)00到ab(a,b)ab的向量表示abia+biabi棱长:∣Z∣a2b2∣Z∣a2b2幅角:为从xxx正半轴逆时针旋转的角度。
2024-01-21 20:53:53
2138
1
原创 【多项式】子集卷积
时,这就是一个普通的 FWT 卷积,考虑如何消掉这个条件。,所以我们只需在 FWT 的基础上多增加一维即可。,我们重新定义它的值为。,你需要求出一个序列。
2024-01-20 22:39:45
969
1
c++01背包问题动态规划
2024-01-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人