mygr main()笛卡尔树
搜索

笛卡尔树

发表于2077-03-02|更新于2025-03-06
|浏览量:
文章作者: my9r
文章链接: http://example.com/2077/03/02/%E7%AE%97%E6%B3%95/%E7%AC%9B%E5%8D%A1%E5%B0%94%E6%A0%91/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 mygr main()!
算法
上一篇
状态压缩
Trick 当需要预处理且卡空间时,可以考虑将状压数组滚动,按照 popcount 的大小去分割,空间复杂度 $O(C_{n}^{\frac{n}{2}})$ # 信号传递 当查询序列方案数,且序列是否合法只需要判断相邻两个元素时,可以考虑状压一个三进制数组表示某个元素 左右都没安排元素/左右有一侧安排了元素/左右都安排了元素 的方案数
下一篇
线性基
涉及选择几个数使其异或起来最小时,若有数必选,则其一开始就异或上,后面统计答案时再贪心选择,而不是丢到线性基里面
相关推荐
2077-03-02
AC自动机
当字符集较大时,可以考虑使用可持久化数组维护 ch 数组 AC自动机上判断某串的子串,考虑枚举前缀然后跳 $fail$ ,可以考虑建出 $fail$ 树,然后在走前缀的过程中用数据结构或连边建图表示出包含关系 # birthday
2077-03-02
BSET定理
相关链接:[[矩阵树定理]],[[欧拉回路]] 对于一个有向图,对于它的欧拉回路个数 $ec(G)$ ,有 $$ec(G)=root_{w}(G)\sum_{v\in V}(deg_v -1)!$$其中 $root_w(G)$ 表示以 $w$ 为根的 $G$ 的外向生成树有多少种 注意BEST定理计算的是两点间若干条边有顺序的方案数,如果是 “某条边能够经过的次数” 则应当除去 $\frac{1}{w!}$ 将顺序消掉 例题: # Counting Prefixes # C4
2077-03-02
DAG链剖分
对于 DAG 上的节点,设 $f_{u}$ 表示以点 $u$ 为结束点的路径数,$g_u$ 表示从点 $u$ 开始的路径数,那么对于节点 $u$ 的所有出边,若存在一条边 $u \rightarrow v$ 使得 $2f_{v}>f_{u},2g_{v}>g_{u}$ ,那么我们则称 $u,v$ 是一条重边 对于任意一条路径,其路径上的轻边数量一定是 $O(logn)$ 级别的,因为每走一次轻边路径数都会折半 最常用的场景是在 [[后缀自动机]] 上快速的子串定位 为什么不倍增跳呢? #under_construction
2077-03-02
KD-Tree
本质:将一个 $k$ 维的立方体内的点压缩到序列上 $O(n^{1-\frac{1}{k}})$ 个不相交区间 而这个序列就可以用正常方法去维护了 例题:# P6783 Ynoi2008 rrusq
2077-03-02
Kmp
kmp的fail数组既可以指最长的前后缀长度,也可以指当前位的最长的前缀匹配,也可以指最长的循环节长度 #under_construction 字符串的所有前缀中,有多少个可以构成形如 “ABABA” 由 k 个A 组成的字符串 通过不断跳fail的方式可以求出最短的前缀匹配,可以通过继承优化到 $O(n+m)$ 例子
2077-03-02
RMQ问题
考虑一个 $O(n)$ 预处理,$O(1)$ 查询的 RMQ 算法 考虑将序列按照 $logn$ 进行分块,对于不在一个同块内部的询问,我们用ST表维护整块的信息,再额外维护块内的前后缀最大值即可 对于在一个块内的查询,我们可以开一个单调栈维护一个前缀的单调下降序列,每一位使用一个整数状压单调栈内拥有的元素,查询 $l,r$ 时直接找 $r$ 对应的单调栈中第一个 $\ge l$ 的位置即可
avatar
my9r
Just the owner of this blog
文章
157
标签
15
分类
0
Follow Me
公告
This is my Blog
最新文章
文化课专栏2077-03-02
AC自动机2077-03-02
BSET定理2077-03-02
DAG链剖分2077-03-02
KD-Tree2077-03-02
©2019 - 2025 By my9r
框架 Hexo 7.3.0|主题 Butterfly 5.3.5
搜索
数据加载中