随笔分类 - 题解
摘要:分析 没脑子的题目。 一眼换根 DP。定义 表示 到 为根子树中某一个节点的距离最大值; 表示 经过其父节点到某个节点的距离最大值。那答案就是 \(\max(\mathit{f}_i,\ma
阅读全文
摘要:分析 对于区间问题,考虑莫队。 和这个一样转化问题。 把树变成 DFS 序之后,在序列上询问区间就是普通莫队模板了。用 set 记录当前区间里存放的有序 。移动完指针之后的判断是否存在就直接在 set 里二分。复杂度虽然大了不止一点,但是 秒还是能过的。没有压力。 代码 #i
阅读全文
摘要:分析 考虑启发式合并。 统计 表示在 这个集合中,是 班的人数。 表示 所在集合下标。根据启发式合并模板,在保证是小集合往大集合合并的情况下,将每个小集合元素 所在的班级都在大集合的 里增
阅读全文
摘要:分析 一眼分块。 用值域分块来维护。先把所有的值离散化,使得至于不大于 。统计一下每个值的数量,每个块包含值的数量,每个块的价值和。修改值的时候先把原来值的数量,块包含的数量,块的价值剪掉被修改值的贡献,然后在新的值上面更新。修改数量直接改数量的变化贡献即可。 找前 大的值之和从值
阅读全文
摘要:分析 乱搞题。 的时候就可以考虑乱搞了。 发现每次操作 都会把上一次的操作 覆盖掉,那么第 个询问时树的颜色情况就是由前 个操作 决定。也就是说这个询问的内容变成了:在 为根的子树中,深度不小于 的节
阅读全文
摘要:分析 线段树。 每个节点维护两个值: 和 。判断字串是否是回文直接就是询问的答案维护出来的两个值是否相同。 首先想到用线段树暴力维护。第一个值很显然是两个儿子的第一个值加起来,第二个值是反着加起来。得到很酷的代码: il void up(int
阅读全文
摘要:分析 一眼 DP。 定义状态函数 表示在第 此比赛中,获胜者为 时的最大奖学金。把比赛过程看成一棵倒着的满二叉树,就能发现:第 场比赛只会是其左儿子为根的子树中叶子节点的某一个与其右儿子为根的子树中叶子节点的某一个进行比赛。然后就可以得到转移方程:$f_{
阅读全文