摘要: 概率 概率:随机事件发生的可能性,是一个 01 之间的实数。 古典概型:P(A)=A 发生的情况数  总情况数  古典概型的特点: 有限性:所有可能出现的基本事件只有有限个 等可能性:每个基本事件出现的可能性相等 如 阅读全文
posted @ 2024-07-25 09:33 RonChen 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 公共祖先: 在一棵有根树上,若节点 F 是节点 x 的祖先,也是节点 y 的祖先,那么称 Fxy 的公共祖先。 最近公共祖先(LCA): 在 xy 的所有公共祖先中,深度最大的称为最近公共祖先,记为 \(LCA(x,y 阅读全文
posted @ 2024-06-10 08:32 RonChen 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 树状数组(Binary Indexed Tree,BIT)是一种用于维护 n 个元素的前缀信息的数据结构。 以前缀和为例,对于数列 a,可以将其存储为前缀和数组 s 的形式,其中 si=j=1iaj。那么通过前缀和数组,就可以 阅读全文
posted @ 2024-06-10 08:31 RonChen 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 树上前缀和 设 sumi 表示根节点到节点 i 的权值总和。 则有: 对于点权,x,y 路径上的和为 sumx+sumysumlcasumfalca。 对于边权,x,y 路径上的和为 \(sum_x + sum_y - 阅读全文
posted @ 2024-06-10 08:26 RonChen 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 倍增法与二分法是“相反”的算法,二分法是每次缩小一半,从而以 O(logn) 的速度快速缩小定位到解;倍增法是每次扩大一倍,从而以 O(2n) 的速度快速地扩展到解空间。 倍增就是“成倍增长”,很多时候倍增的实现利用的是二进制本身的倍增特性。把一个数 n 用二进制展开, 阅读全文
posted @ 2024-06-10 08:21 RonChen 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 例题:P3459 [POI2007] MEG-Megalopolis 给定一棵 n 个节点的树,根节点为 1,开始每条边边权为 1。有 m+n1 次操作,每次修改操作使得某条边边权为 0,每次查询操作询问 1 到某个点的边权和。 数据范围:\(n \ 阅读全文
posted @ 2024-06-09 21:44 RonChen 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 背包类问题是动态规划的一类问题模型,这类模型应用广泛。背包类问题通常可以转化成以下模型:有若干个物品,每个物品有自己的重量和价值。选择物品放进一个容量有限的背包里,求出在容量不超过最大限度的情况下能拿到的最大总价值。 01 背包问题 背包类问题中最简单的是 01 背包问题:有 n 个物品,编 阅读全文
posted @ 2024-05-31 19:08 RonChen 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 树形 DP 即在树上进行的 DP。 常见的两种转移方向: 父节点 子节点:如求节点深度,dpu=dpfa+1 子节点 父节点:如求子树大小,dpu=1+dpv 例题:P5658 [C 阅读全文
posted @ 2024-05-21 19:16 RonChen 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 树的直径是指树上最远的两点间的距离,又称为树的最远点对。有两种方法求树的直径,时间复杂度都为 O(n): 做两次 DFS(或 BFS) 树形 DP 两种方法有各自的优点和缺点。 做两次 DFS(或 BFS)方法的优点是能得到完整的路径。因为它用搜索的原理,从起点 u 出发一步一步求 阅读全文
posted @ 2024-05-12 12:02 RonChen 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 二分图 bool dfs(int u, int c) { if (color[u] == c) return true; else if (color[u] == 3 - c) return false; color[u] = c; for (int v : graph[u]) if (!dfs(v 阅读全文
posted @ 2024-05-04 11:19 RonChen 阅读(66) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示