Description 给定一棵N个节点的带权树,定义dist(u,v)为u,v两点间的最短路径长度,路径的长度义为路径上所有边的权和。再给定一个K,如果对于不同的两个结点a,b,如果满足dist(a,b) include include include include include define ...
分类:
其他好文 时间:
2019-07-27 09:58:02
阅读次数:
90
点分治我感觉是图论树部分比较考验脑力的一种题目了 POJ1741 题意:给一棵边带权树,问两点之间的距离小于等于K的点对有多少个 满足条件的点对有两种情况:两个点的路径横跨树根,两个点位于同一颗子树中 对于根节点进行一次dfs,求出deep,并将其从小到大排序 然后看一下calculate 如果我们 ...
分类:
其他好文 时间:
2018-08-11 23:24:26
阅读次数:
196
在说点分治之前先说一下序列分治,序列分治大家都知道吧,就是把序列从某个位置(一般是中间点)分成两部分,统计跨越两部分的答案再递归处理两部分。树的点分治的道理和序列分治很像,但树没有中点,该怎么分治呢?再对比序列分治,序列相当于一条链,而序列的中点就是这条链的重心,那么树的分治点就可以是这棵树的重心。 ...
分类:
其他好文 时间:
2018-06-14 21:07:25
阅读次数:
232
整理一下将来要学的东西 其实我也不知道我写的东西是什么东西,简单的列一下吧 辅助类 Vim Latex Markdown geogebra 数据结构/算法 单调栈,单调队列,双端队列 线段树 zkw线段树 二维线段树/树状数组 动态开节点线段树 李超线段树 线段树合并 平衡树 Splay Treap ...
分类:
其他好文 时间:
2017-11-19 13:28:36
阅读次数:
169
分治算法在树的路径问题中的应用 一、树的分治算法 树的分治算法是分治思想在树型结构上的体现。 任一个具有n个节点的连通路,它的任何一棵树的树枝数为n-1 分治:除去树中的某些对象,使原树被分解成若干互不相交的部分。 分治算法分为两种:一种是点的分治,一种是边的分治 1.基于点的分治 1.选取一个点将 ...
分类:
其他好文 时间:
2017-03-24 20:29:34
阅读次数:
177
题目链接:hdu_4918_Query on the subtree 题意: 给出一颗n个点的树,每个点有一个权值,有两种操作,一种是将某个点的权值修改为v,另一种是查询距离点u不超过d的点的权值和。 题解: 这里可以去膜膜鸟神的博客。 简单来说就是对树的每个重心建立两个树状数组,然后对于每个点修改 ...
分类:
编程语言 时间:
2016-12-02 14:35:52
阅读次数:
260
树的分治学了好几天时间也不是很透彻,特别是09年OI论文还没看懂。。。。。 这题很经典的一道树的分治 可以参考09漆神OI论文 1 #include <cstdio> 2 #include <algorithm> 3 #include <vector> 4 #include <cstring> 5 ...
分类:
其他好文 时间:
2016-04-16 21:22:54
阅读次数:
264
题意:给一棵树,n个节点,给定一个数k,求任意满足dist(a,b) 2 #include 3 #include 4 #include 5 #include 6 #include 7 #define pii pair 8 #define INF 0x3f3f3f3f 9 #...
分类:
其他好文 时间:
2015-09-15 21:43:13
阅读次数:
307
树分治,设当前树的分治中心为x,其子树分治中心为y,则设father[y]=x,分治下去则可以得到一颗重心树,而且树的深度是logn。 询问操作(x,d),只需要查询重心树上x到重心树根节点上的节点的累加和。假设当前节点是y,那么节点y可以贡献的答案是那些以y为分治中心且到y距离为d-dis(...
分类:
其他好文 时间:
2015-08-05 06:22:39
阅读次数:
186
题目链接: Poj 1741 Tree这个题目Tle的好苦啊,原来一直是树的重心没找对,Tle好长时间,终于对了,好感动,先贴个代码。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 ...
分类:
其他好文 时间:
2015-07-26 22:31:40
阅读次数:
202