数据结构-树链剖分
文章平均质量分 51
The_useless
这个作者很懒,什么都没留下…
展开
-
POJ 3237 Tree (树链剖分+线段树)
POJ 3237 Tree题目大意:给你n个结点的树,有三种操作: 1.CHANGE i v 将i号边边权变为v 2.NEGATE a b 将a点到b点路径上的边权取相反数 3.QUERY a b 找到a点到b点路径上的边权的最大值 输出所有3操作结果,指令结束标志为”DONE”. 有多组数据.题目分析:(又滚去做树链剖分的题,元旦放假前开始做到现在,233)将边权转化成相连两点中子节点的原创 2017-01-02 21:04:46 · 910 阅读 · 0 评论 -
总结-树链剖分
总结-树链剖分(今天学会了树链剖分,\(^O^)/)以BZOJ1036为例,题目中要求树上的区间和,最值询问. 若不是在树上的话,很容易想到用线段树来来实现.树链剖分实质而树链剖分实际上也就是将树结构剖分成一条一条的链结构,实际上就是区间,以便于数据结构的操作. 就题目而言,若将树剖分成链,那么就很容易再在线段树的基础上维护.如何剖分?显然链的条数越少越好,那么对于一个点而言,他只能和其子节点中原创 2016-12-29 21:26:33 · 912 阅读 · 0 评论 -
BZOJ 3637: Query on a tree VI (树链剖分+树状数组)
BZOJ 3637: Query on a tree VI题意概述:给一棵n个结点的树,结点有黑白两色,一开始全为黑色. 对于q个操作,每个操作由两个整数op,u给出. 当op=0,将u点颜色反转. 当op=1,求与u点相连的点的个数(若两点及两点间路径上均为同色点,则两点相连,否则不相连),即求从u点往四周扩散的同色块大小.题目分析:(初学链剖,戳开了这个题,然后……d了一天的bug)在网上原创 2016-12-31 09:33:49 · 1562 阅读 · 0 评论 -
BZOJ 1036: [ZJOI2008]树的统计Count (树链剖分+线段树)
BZOJ 1036: [ZJOI2008]树的统计Count题目概述:n个结点的树,点有点权.有三种操作:1.单点修改点权,区间询问和,区间询问最值.题目分析:先用树链剖分将树剖分成多条链,再用线段树维护.代码:#include<cstdio>#include<iostream>#include<algorithm>using namespace std;const int maxn=30000原创 2016-12-29 21:31:34 · 757 阅读 · 0 评论