注意事项: 1、把握好“树节点”与“RMQ节点”的关系, 即build时,dat[k]=a[pre[L]];query时,调用需加上tree[x],tree[y] 有时候又不需要加tree[x],比如处理子树。 2、线段树确保正确,数组开4倍 3、树链剖分的循环中,必须先处理链顶深度较大的,如果直接 ...
分类:
其他好文 时间:
2017-09-30 10:04:57
阅读次数:
194
[luogu P3384] [模板]树链剖分 题目描述 如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 操作1: 格式: 1 x y z 表示将树从x到y结点最短路径上所有节点的值都加上z 操作2: 格式: 2 x y 表示求树从x到y结点最短路径上所有节点 ...
分类:
其他好文 时间:
2017-09-29 19:30:16
阅读次数:
181
一道比较神奇的题。 树链剖分+奇技淫巧; 神奇地发现,把z到跟的路径上的点值+1,查询一个点到跟的路径和就是它与z的lca的深度。 相对的,把l~r到跟的路径上的点值+1,查询z到跟的路径和就是要的答案。 考虑差分,把一个询问拆成两个,把所有询问排序然后从0~n-1到跟路径上的值+1; 一开始狂WA ...
分类:
其他好文 时间:
2017-09-29 09:59:44
阅读次数:
162
当两个点在一条链上,它们的LCA就是深度较小的那个点。 于是这种树链剖分写LCA的思想就是把要求的两个点想办法靠到一条链上。 而且要靠到尽量更优的一条链上(重链)。 做法: 预处理出每棵树上的重链(size大的),每个点求出一个top,代表与这个点能靠到最近的一条重链的位置。 求LCA时两个点分别向 ...
分类:
其他好文 时间:
2017-09-28 22:24:39
阅读次数:
226
题目描述 给出一个N个点M条边的无向带权图,以及Q个询问,每次询问在图中删掉一条边后图的最小生成树。(各询问间独立,每次询问不对之后的询问产生影响,即被删掉的边在下一条询问中依然存在) 输入 第一行两个正整数N,M(N<=50000,M<=100000)表示原图的顶点数和边数。 下面M行,每行三个整 ...
分类:
其他好文 时间:
2017-09-26 21:17:13
阅读次数:
695
【BZOJ2325】[ZJOI2011]道馆之战 Description 口袋妖怪(又名神奇宝贝或宠物小精灵)红/蓝/绿宝石中的水系道馆需要经过三个冰地才能到达馆主的面前,冰地中的每一个冰块都只能经过一次。当一个冰地上的所有冰块都被经过之后,到下一个冰地的楼梯才会被打开。三个冰地分别如下: 当走出第 ...
分类:
其他好文 时间:
2017-09-24 10:46:21
阅读次数:
201
仔细想想 自己第一次听说这个这个数据结构大概有两年半的时间了 然而一直不会. 不过现在再回头来看 发现其实也不是很麻烦 首先 在学树链剖分之前最好先把LCALCA 树形DPDP 以及dfsdfs序 这三个知识点学了 如果这三个知识点没掌握好的话 树链剖分难以理解也是当然的 树链剖分通常用于处理树的形 ...
分类:
编程语言 时间:
2017-09-23 15:26:57
阅读次数:
204
1036: [ZJOI2008]树的统计Count Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点 ...
分类:
其他好文 时间:
2017-09-21 23:24:27
阅读次数:
243
内存限制:512 MiB 时间限制:500 ms 标准输入输出 题目类型:传统 评测方式:文本比较 上传者: 匿名 树链剖分+线段树 屠龙宝刀点击就送 #include <vector> #include <cstdio> #define N 100005 using namespace std; ...
分类:
其他好文 时间:
2017-09-17 16:35:59
阅读次数:
312
题目链接 HDU5893 2016年ICPC沈阳网络赛的B题。这道题其和 BZOJ2243 基本一样 那道题我也写了题解 点这里 两道题的区别就是BZOJ这题是点的权值,这道题是边权。 所以我们把边权看成这条边连接的两个点的深度较大的那条边的点权就可以了。 但是这样的话根结点就没有权值了。 询问和查 ...
分类:
其他好文 时间:
2017-09-16 23:23:19
阅读次数:
244