
树状数组
hrbust_wgq
当我们理解了一个东西的时候,所应该做的,是将这个东西放下去,好让更多的人明白和掌握;而不是举起来,以一种高姿态故作高深。这不是科学文化发展和传播的正道。有时候,所谓的“一言以蔽之”,不经意间,就“蔽”掉了求知者的热情和渴望,同时也就“蔽”掉了科学文化的健康传承。
把问题说清楚,尽可能让更多的人明白,是博客的宗旨。直达本质,直达底层,去术语化,用最通俗、最平易的语言和讲解方式说清“到底是什么”、“原来是这样”,是要努力的方向。
展开
-
POJ 2892 Tunnel Warfare 树状数组||STL
Tunnel Warfare题目链接:https://vjudge.net/problem/POJ-2892题意:有几个村庄,D a表示a村庄被摧毁,R表示修复上一个村庄,Q a表示包含a的连续村庄有多少个,如果a被摧毁则输出0。思路:利用树状数组可以很好实现D和R的操作,,但是Q要怎么query呢?要log的查询,怎么二分呢?当然具有单调性啦,因为是连续的村庄,所以一直范围内递增啊。所...原创 2019-08-10 10:49:43 · 171 阅读 · 0 评论 -
HDU 3465 【树状数组/几何问题转化逆序问题】
HDU 3465 【树状数组/几何问题转化逆序问题】题目链接建议先做:POJ 3067题意:给你N对点和区间L,R,每对点都会形成一条直线,问你这些直线的交点中横坐标大于L,且小于R的数量是多少。思路:首先画一个满足条件的直线可以发现要想它们的交点在...原创 2019-08-14 21:05:39 · 140 阅读 · 0 评论 -
POJ 3321 【树状数组+dfs序】
POJ 3321 【树状数组+dfs序】题目链接题意:树上有N个节点,卡卡给他们编号1到N,根的编号永远是1.每个节点上最多结一个苹果。卡卡想要了解某一个子树上一共结了多少苹果。“C x” 表示某个节点上的苹果发生了变化,如果原来没有苹果,则现在长出了一个苹果;如果原来有苹果,则是卡卡把它吃了。“Q x” 表示查询x节点上的子树上的苹果有多少。包含节点x.思路:第一个操作直接O(1)修改...原创 2019-08-12 21:01:09 · 186 阅读 · 0 评论 -
HDU 3015 Disharmony Trees 【树状数组】
HDU 3015 Disharmony Trees 【树状数组】POJ 1990升级版题意:给你树高和树的横坐标,然后按两个参数从小到大有两个排名rank1,rank2,例:3 3 1 3 4 对应排名rank 就是 2 2 1 2 5, 任意两个两棵树的值为min(高度对应的rank)*abs(位置差对应的rank),问所有任意两棵树的差为多少.思路:先排序求出rank1,rank2,然...原创 2019-08-17 10:50:51 · 165 阅读 · 0 评论 -
POJ 2985 【并查集+树状数组第K大】
POJ 2985 【并查集+树状数组第K大】题目链接题意:给你猫的编号1-n,m次操作,0操作可以把两只猫放到一组,1操作询问猫的当前第K大组的容量是多少。**思路:**首先0操作可以利用并查集的合并操作,用一个size数组纪录组的容量,每次合并的时候就更新size,那么查询第K大用什么来记录呢?主席树?不不不,今天要说的是树状数组,树状数组求第K大???其实就是个板子,利用树状数组前缀和...原创 2019-08-22 18:29:13 · 266 阅读 · 0 评论