01 2024 档案
摘要:先直接看模板题:【模板】重链剖分/树链剖分。 这道题的操作还是修改和查询和,看起来是线段树可以维护的操作,区别在于这是树上的操作。 那怎么把树上的和转化为区间和呢?这里就要用到DFS序(图和树的是一样的)。这样每个节点就有了一个在序列中的下标。加的时候只要对相应的节点所组成的若干区间加即可。 但是这
阅读全文
摘要:题目传送门 简化题意: 给出一棵 个节点的树和 次修改,每次修改对路径 上的所有点权加 ,求 次修改后权值最大的点。 分析: 树上差分板子。 先回顾一下序列差分: 序列差分经典题就是进行若干次修改,最终求出整个序列。 因为差分是前缀和
阅读全文
摘要:题目传送门 经典树上 DP 问题。 对于该题,我们设状态为 。 表示以 为根的子树中不选 参加的宴会的最大快乐值, 表示以 为根的子树中选 参加的宴会的最大快乐值。 显然,当我们不选 \
阅读全文
摘要:题目传送门 本题注意两个点: 如果 会产生联合权值, 也会产生相等的联合权值。 只有联合权值之和才 ,最大联合权值不用(大坑点)。 对于求最大联合权值,相对简单。因为能产生联合权值的 距离为 ,所以中间
阅读全文
摘要:题目链接 洛谷链接 分析: 我们设分成的 个子任务为 ,即最大化 。 设这个答案为 ,\(a_1 = A_1 \times ans,a_2 = A_2 \times ans, \dots
阅读全文
摘要:建议结合板题食用 【1】暴力做法 我们先用 DFS 预处理所有节点的深度,每次查询,将深度大的节点向上提到和另一节点深度相同的位置,然后同时向上提,直到两节点碰面。 在极端情况下,树只有两条链构成,那么查询链末端的节点的最近公共祖先复杂度可达到 ,不可通过本题,所以我们需要更高效的解
阅读全文
摘要:取出整数 在二进制下的最后一位: 直接说结论:n & 1。这一点可以用来判奇偶性,也是其它二进制操作中很重要的一点。 取出整数 在二进制下的第 位: 注:二进制位从 开始计。 因为我们要取第 位,所以 位不
阅读全文
摘要:建议结合板题食用。 单调队列,顾名思义,就是队内元素满足单调性的队列,可以用于在线性的时间复杂度内求一个序列所有长度为 的区间的最值。 先看一下这个序列: 1 14 5 14 19 1 98 10 设这里的 ,我们先维护一个队列: 首先,我们将 和 \(14
阅读全文
摘要:给定一个具有 个顶点(从 到 编号)的凸多边形,每个顶点的权均是一个正整教, 问:如何把这个凸多边形划分成 个互不相交的三角形,使得这些三角形顶点的权的乘积之和最小? 设 表示 \(i \sim j\
阅读全文
摘要:众所周知,manacher 又叫“马拉车”算法,是一种线性求解最长回文子串的算法。 推荐结合模板阅读此文。 求最长回文子串,首先想到的是暴力。枚举子串的左右端点 ,再判断这个子串是否回文。总复杂度 ,效率过低。 观察发现,我们可以只枚举中点,然后同时向左右不断扩展
阅读全文