01 2024 档案

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

点击右上角即可分享
微信分享提示