https://www.luogu.org/problemnew/show/P3384 如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 操作1: 格式: 1 x y z 表示将树从x到y结点最短路径上所有节点的值都加上z 操作2: 格式: 2 x y 表示求 ...
分类:
其他好文 时间:
2018-03-11 19:17:21
阅读次数:
191
BZOJ_3589_动态树_容斥原理+树链剖分 题意: 维护一棵树,支持1.子树内点权加上一个数 2.给出k条链,求路径上的点权和(重复的计算一次) (k<=5) 分析: 可以用树剖+线段树解决第一个操作 然后我们发现k非常小,可以二进制枚举 那就容斥一下转化成求几条链的交 链交求法:链顶是两条链顶 ...
分类:
其他好文 时间:
2018-03-11 02:30:12
阅读次数:
201
1103: [POI2007]大都市meg 题目:传送门 简要题意: 给你一棵树,给出每条边的权值,两个操作:1、询问根到编号x的最短路径的权值和 2、修改一条边的边权 题解: 很明显啊,看懂了题基本上就A了 一个树剖的板子啊...(其实不是最优解...卡时间过的嘿嘿) 代码: ...
分类:
其他好文 时间:
2018-03-10 12:00:17
阅读次数:
150
题目描述 修改某条路径上的值以及询问子树的最小值都是最树剖的基础操作,那么如何实现换根呢? 考虑一下三种情况: 1.rot=询问的子树x,答案就是整棵树的最小值 2.rot在x的子树里,只有rot到x这一条链上的的节点的子树会变 找到x在rot方向上的子节点,答案就是除去这棵子树的最小值 3.rot ...
分类:
其他好文 时间:
2018-03-08 22:56:17
阅读次数:
237
LCA(Least Common Ancestors) 即最近公共祖先,是指在有根树中,找出某两个结点u和v最近的公共祖先。 树链剖分求解 用的不多,但异常高效 不懂树链剖分的小伙伴看这里、 "树链剖分—学习笔记" 我们先把两个dfs预处理做好 接着进入询问lca(u,v)的环节 int u=rea ...
分类:
其他好文 时间:
2018-03-08 14:08:15
阅读次数:
136
题目描述 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。 我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径 ...
分类:
其他好文 时间:
2018-03-08 14:01:50
阅读次数:
166
树链剖分 一个听起来很高级的数据结构 但其实就是一个比较优雅的暴力 树链剖分 字面意思, 就是把树上的路径剖成一条条链 首先是树链剖分的一些定义: size[u] 包括u在内u的子节点个数 son[u] 结点u的重儿子 dep[u] 结点u的深度 fa[u] 结点u的父亲节点 top[u] 结点u所 ...
分类:
其他好文 时间:
2018-03-08 13:58:32
阅读次数:
166
题目描述 有一个字符串$s$,长度为$n$。有$m$个操作: $addl ~c$:在$s$左边加上一个字符$c$ $addr~c$:在$s$右边加上一个字符 $transl~l_1~r_1~l_2~r_2$:有两个$s$的子串$s_1=s[l_1\ldots r_1],s_2=s[l_2\ldots ...
分类:
其他好文 时间:
2018-03-06 12:02:51
阅读次数:
179
【传送门:BZOJ1103】 简要题意: 给出一棵树,树上的根节点为1,一开始所有的边的边权都为1,给出两种操作: 1.M x求出x点到根节点的边权和 2.A x y表示x到y的这条边的边权变为0 题解: 树链剖分裸题 把题意简要提取之后就变成裸题了。。 没什么好讲 参考代码: ...
分类:
其他好文 时间:
2018-03-04 16:01:18
阅读次数:
117
【CF725G】Messages on a Tree 题意:给你一棵n+1个节点的树,0号节点是树根,在编号为1到n的节点上各有一只跳蚤,0号节点是跳蚤国王。现在一些跳蚤要给跳蚤国王发信息。具体的信息传输过程如下: 1.信息的发起者把信息上传给他父亲节点处的跳蚤,然后自身进入等待状态。3.跳蚤国王在 ...
分类:
其他好文 时间:
2018-03-04 11:55:01
阅读次数:
162