———树套树
MissZhou要努力
不晓日月,不辩兰艾,终日碌碌,安与燕雀相随乎
展开
-
hdu3966Aragorn's Story【树链剖分+树状数组】
实在是受不了邝斌那种非得用单点更新的函数写区间更新的写法,太不好理解了,自己在这个基础上改了,mark一下,以后比赛的时候要打印 一个小错误是如果初始值不加入树中,最后求再加进去的时候下标不要换成p[u]!所以说,自己写示例是多么重要 /************ hdu3966 2016.2.2 1014MS 9792K 2876 B G++ ************/ #include #原创 2016-02-02 17:10:16 · 904 阅读 · 0 评论 -
数链剖分基础讲解
“在一棵树上进行路径的修改、求极值、求和”乍一看只要线段树就能轻松解决,实际上,仅凭线段树是不能搞定它的。我们需要用到一种貌似高级的复杂算法——树链剖分。 树链,就是树上的路径。剖分,就是把路径分类为重链和轻链。 记siz[v]表示以v为根的子树的节点数,dep[v]表示v的深度(根深度为1),top[v]表示v所在的重链的顶端节点,fa[v]表示v的父亲,son[v]表示转载 2015-10-02 19:54:57 · 570 阅读 · 0 评论 -
1036: [ZJOI2008]树的统计Count 【树链剖分】【点权:单点更新区间求值】
SubmitStatus Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成 一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 I II. QSUM u v: 询问从点u到点v的路径上的节点的权值和 注意:从点u到点原创 2016-05-28 16:40:52 · 348 阅读 · 0 评论 -
poj3237tree【树链剖分入门题+线段树】
休息了两天,今天开始做树链剖分,除了模板长以外,还是挺好理解的。就只是线段树+剖分独特的函数,然后树链剖分所用的数组有点多,没了。其中需要注意的一个点是“链”(路径)不一定是从根节点到叶子节点的,轻儿子这个点它也有重儿子啊啊啊。 再说这个题,单点更新,区间取相反数,区间求最大值。 /*********** poj3237 2015.1.23 2504K 657MS C++ 6396B ****原创 2016-01-23 17:20:15 · 1504 阅读 · 0 评论