摘要: 虚树 虚树一般是用来优化树上一些算法的。 一般情况下,如果我们对一棵树的算法只和某些已知关键点有关,而其他点没有用,就可以建立一颗只含关键点及它们两两之间的 LCA 的树。 其实相当于在原树上抽出一棵含有关键点的树,因为 LCA 起到连接关键点的作用,所以把lca以外的点压缩掉,最后剩下的就是原树的 阅读全文
posted @ 2022-02-23 17:12 llmmkk 阅读(79) 评论(0) 推荐(0)
摘要: 前后缀优化建图是指一个点连向的区间一定是一段前缀或一段后缀的形式。 这种情况前后缀可以做到比线段树优化建图 \(O(n\log n)\) 边数更优的 \(O(n)\) 的边数. 实现起来也比线段树更简单: 这样就是 \(u\) 对之前所有点都连边了,当然也可以做到一段前缀或后缀向某个点连边。 但满足 阅读全文
posted @ 2022-02-23 12:16 llmmkk 阅读(570) 评论(1) 推荐(1)
摘要: 大部分来源是OIwiki 说到底邻接矩阵也是矩阵,也是用来描述一个状态转移过程的,这个状态可以是一个点集(向量),也可以是所有点对(矩阵)。 首先是用起点向量乘邻接矩阵转移到终点向量。 快速求从一些起点走 \(k\) 步能到达的点 可以用起点向量乘上邻接矩阵的 \(k\) 次方表达,可以用 bits 阅读全文
posted @ 2022-02-23 11:56 llmmkk 阅读(297) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2022-02-23 11:35 llmmkk 阅读(0) 评论(0) 推荐(0)
摘要: 链接 P7453 分析 因为每个点维护的三个值会互相影响,所以不能分别写 tag,但我们发现其实所有操作都可以用矩阵来描述,所以你只需要在线段树上维护一个矩阵lazytag和四个区间和,分别是 \(\sum a,\sum b,\sum c,\sum 1\)。 同时我们发现对于一次覆盖区间的修改,我们 阅读全文
posted @ 2022-02-23 11:00 llmmkk 阅读(80) 评论(0) 推荐(0)