随笔分类 -  分治-点分治,边分治

该文被密码保护。
posted @ 2022-06-10 22:55 crashed
该文被密码保护。
posted @ 2022-02-11 08:55 crashed 阅读(0) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 我们可以先将树变成有根树,这样我们可以计算包含某个点的连通块数量,求和自然是树上所有连通块的数量。 那么,如果一个结点被连通块包含,则它的祖先也必须被包含。自顶向下的 DP 难以使用 DFS 解决,因此我们可以在 DFS 序上进行 DP,这样选择一个结点就是转移到 DFS 阅读全文
posted @ 2021-11-09 21:11 crashed 阅读(101) 评论(0) 推荐(1)
摘要:题目 点这里看题目。 分析 直接来做这个有趣的问题似乎显得太过棘手,不妨考虑一个较弱的问题: \[ \sum_{u=1}^n s_u \] 假如当前根确定为 \(r\) ,那么就有: \[ \sum_{u=1}^ns_u=\sum_{u=1}^n(\operatorname{dist}(u,r)+1 阅读全文
posted @ 2021-04-15 22:11 crashed 阅读(94) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 如果你熟悉问题的结构的话,你会发现题目要求的相当于是树上带权重心。 关于这一点的说明: 考虑现在将任意一点 \(u\) 提作根,并设 \(sd_u\) 为 \(u\) 子树内的 \(d\) 之和。 那么考虑 \(u\) 的一个儿子 \(v\) ,如果现在将根从 \(u\) 阅读全文
posted @ 2021-04-14 21:17 crashed 阅读(76) 评论(0) 推荐(0)
摘要:题目 大意如下: 本题中的定义基于 [CSP2019]括号树 。 给定一棵树,树上节点有对应字符,均为 ( 或 )。 定义 \(ans(P,Q)\) 表示从 \(P\) 到 \(Q\) 的简单路径上的字符(包含两端)组成的字符串中,合法的子串的数量。 请你求出: \(\sum_{P=1}^n\sum 阅读全文
posted @ 2020-08-01 08:34 crashed 阅读(249) 评论(0) 推荐(0)
摘要:题目 "点这里" 看题目。 "备用网址" 。 分析 考虑容斥地计算合法路径。即用总路径的积除以不合法路径的积。 分别考虑每条边对总路径的贡献。如果一条边左连通块大小$a$,右连通块大小$b$,权为$w$,则它的贡献为$w^{ab}$。 接着考虑不合法的路径。我们用$(a,b)$表示一条路径(路径有$ 阅读全文
posted @ 2020-03-29 13:11 crashed 阅读(136) 评论(0) 推荐(0)
摘要:题目 "点这里" 看题目。 BZOJ 上是权限题目。 分析 这道题可以用点分治,但是我就是喜欢边分治 QAQ 。 分治过程中,我们考虑经过分治边的路径的最大痛苦值。一条经过分治边的路径会被分治边划分成两段(不包括分治边),我们只需要在它的最小值的那一段将它计入答案。 也就是说,对于每一条从分治块中一 阅读全文
posted @ 2020-03-29 12:53 crashed 阅读(139) 评论(0) 推荐(0)
摘要:题目 "点这里" 看题目。 BZOJ 上面是权限题目。 分析 第 K 小的问题无非两种方法——构造法或者二分法。 很显然如果构造的话在这里不太好处理,因此我们可以对于每一个点$u$,二分一下这个第 K 小路的长度。 检查的方法很简单,也就是计算一下从$u$出发的路径中,是否有 K 条以上的路径的长度 阅读全文
posted @ 2020-03-27 19:49 crashed 阅读(111) 评论(0) 推荐(0)
摘要:题目 "点这里" 看题目。 分析 关于树上路径的统计问题,我们不难想到用点分治。而这道题存在修改,因此我们用 " 动态点分治 "。 考虑正常的点分治,我们在每一层点分治中求的是经过当前点的最大关灯点距离。我们先求出本层中所有关灯点到自己的距离,并取其中 来自不同子树 的最大值和次大值,相加得到本层的 阅读全文
posted @ 2020-03-27 19:39 crashed 阅读(118) 评论(0) 推荐(0)
摘要:题目 "点这里" 看题目。 BZOJ 目测......是炸了。 分析 动态点分治入门题。 首先理解什么叫 " 动态点分治 "。 一般点分治需要离线解决,不带修改。动态点分治可以用点分治的方法在线解决问题,支持修改。 在点分治的过程中,每个点都会成为一次分治中心进行计算。如果我们将点按照计算顺序连成一 阅读全文
posted @ 2020-03-27 19:36 crashed 阅读(76) 评论(0) 推荐(0)
摘要:题目 "点这里" 看题目。 BZOJ 上这还是权限题。 分析 不难发现,最后我们走过的点一定组成了树上的一个连通块。 如何枚举树上一个连通块?我们可以想到用点分治。由于每一次我们进行分治之后会进行子树继续分治,这就相当于将原图变成了几个连通块。我们只需要对于每次分治,将分治中心设定为 “ 必选 ” 阅读全文
posted @ 2020-03-27 19:31 crashed 阅读(107) 评论(0) 推荐(0)