* 树链剖分模板题 * 由于存在换根操作 * 对所有关于节点 u 的修改和查询操作进行分类讨论 * 若 Root 在 u 的子树中,则不处理 u 所在的 Root 的那颗子树 * 否则不会有影响 * 寻找 Root 所在的那颗子树的根可以用倍增求 ...
分类:
其他好文 时间:
2018-07-24 17:51:46
阅读次数:
172
3732: Network https://www.lydsy.com/JudgeOnline/problem.php?id=3732 分析: 最小生成树+倍增 或者 kruskal重构树。 1、可以求出最小最小生成树,然后倍增求出两条路径的最大值。 2、kruskal重构树,直接求出LCA即可。 ...
分类:
Web程序 时间:
2018-07-23 14:58:31
阅读次数:
213
模板题 "P3865 【模板】ST表 " 代码 实质也是DP,利用倍增获取从i开始长度为$2^0,2^1,2^2…2^j$的区间内的最大值。 这样对于任意区间$[l,r]$都有,令$dis=r 1+1$则有$k_0=2^c,2^{k_0}≤dis≤2^{k_0+1}$这样在区间$[l,l+k0 1] ...
分类:
其他好文 时间:
2018-07-22 13:03:40
阅读次数:
131
st表。 $O(1)$时间查询 cpp / 倍增建 / void build(){ for(int i=1;i ...
分类:
其他好文 时间:
2018-07-22 00:20:27
阅读次数:
156
前面提到过,可以考虑倍增,这里就以容器vector的倍增为例,这也是《C++ primer》中提到过的倍增,并且测试了下时间,主要是验证时间时间复杂度问题 每次添加一个元素的时间复杂度是O(1),添加到n(假设初始容量是n)个元素的时候,需要倍增扩容同时将原来的数据拷贝到现在的新的数组中,那么前面n ...
分类:
编程语言 时间:
2018-07-20 21:18:08
阅读次数:
127
我们做的这个平台叫【资源互动生态圈】,是一 家实体产业巨大、做全球资源整合的集团企业。 我们购买公司的【广告空间点】成为粉丝,公司回馈赠送我们【易物点】,我们购买的广告空间点,可以在mface平台打广告宣传自己的产品或服务,也可以出售给需要广告点的商家,他们拿去打广告。 而平台回馈赠送给我们的易物点 ...
分类:
其他好文 时间:
2018-07-20 00:22:11
阅读次数:
308
http://www.cnblogs.com/zhouzhendong/p/7256007.html LCA 最近公共祖先,只在同一个树中距离两个子节点最近的那个父节点。 在网上最快的有两种算法分别是算法发明家——Tarjan 以他名字发明的算法,和倍增算法,和树剖。 而Tarjan算法几乎只能求两 ...
分类:
其他好文 时间:
2018-07-17 21:11:36
阅读次数:
202
考虑固定l,每次查找符合的r,每次倍增长度p,用归并排序将后面的可行的部分归并进去,时间复杂度O(nlogn),不用读入挂就T了 1 /* *********************************************** 2 Author :BPM136 3 Created Time ...
分类:
编程语言 时间:
2018-07-15 19:50:11
阅读次数:
466
算法: 求出MST之后枚举每条在MST之外的边 连上之后会出现环 找到环中除加上的边之外权值最大的边 删除该边之后得到一颗新树 做法: 利用LCA倍增地维护最小生成树上两点之间的最大边权 每次枚举在MST之外的边 有两种情况 ①.两个端点在一条链上 ②.两个端点不在一条链上 第一种情况就直接得到答案 ...
分类:
其他好文 时间:
2018-07-14 20:01:24
阅读次数:
185
Codeforces题号:#519E 出处: Codeforces 主要算法:最近公共祖先LCA(倍增法) 难度:4.5 思路分析: 题意:询问给出一棵无根树上任意两点a,b,求关于所有点i,\(dist(a,i) = dist(b,i)\)的点的数量。要求每一次询问在O(log n)的时间复杂度内 ...
分类:
其他好文 时间:
2018-07-12 22:45:41
阅读次数:
227