![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
文章平均质量分 50
日常懵
菜鸟一只
展开
-
树 链 剖 分
树链剖分 树链剖分用于将树分割成若干条链的形式,以维护树上路径的信息。 定义 重子节点 :其子节点中子树最大的子结点。如果有多个子树最大的子结点,取其一。如果没有子节点,就无重子节点。 轻子节点: 表示剩余的所有子结点。 从这个结点到重子节点的边为 重边。 到其他轻子节点的边为 轻边。 若干条首尾衔接的重边构成 重链。 初始化 两遍dfs 第一次处理每个节点的dep(深度) , fa(父亲节点) ,sz(子树大小), son(重链结点) void dfs1(int u , int v , int de )原创 2022-04-13 09:05:35 · 355 阅读 · 0 评论 -
E. William The Oblivious
E. William The Oblivious [链接](E. William The Oblivious) 题意:给你一个长为 n 的字符串,只包含 abc 三种字符。q 次操作,每次把一个位置的字符改成给定字符,询问当前串至少修改几次满足不包含子串 abc。修改指把一个位置的字符修改成 a、b、c 三种字符之一。 线段树维护 记录每个区间有多少a b c ab bc abc 维护区间 a = la + ra ; b = lb + rb ; c = lc + rc ; ab = min(la + rab原创 2021-12-19 11:06:12 · 159 阅读 · 0 评论