
线段树
mis_deer
Make_myself.
展开
-
[HDU 5029] Relief grain (树链剖分+线段树)
HDU - 5029 其实这道题最大的难点不是树链剖分,而是怎么维护某个点被那些颜色染过,染过多少次 如果在线段树维护的话,很难做到,估计得树套树,而且空间会炸 好在这题是离线的,可以使用差分的思想来维护 对一段区间[l,r]染色 c,相当于在这段区间左端点 l打上 c标志,右端点 r+1打上 -c标志 然后扫一遍整个区间 (依照 dfs序扫一遍整棵树),期间不断维护一颗线段树原创 2016-04-07 20:59:39 · 459 阅读 · 0 评论 -
[HDU 5316] Magician (线段树+单点更新+区间询问+区间合并)
HDU - 5316 给你一个长度为 N的序列,有 M个操作 0 a b: 询问[a,b]区间内下标奇偶交替的序列的最大和 1 a b: 将 a位置的数改为 b很显然这是一个区间询问,单点修改的线段树 具体写法就是区间合并的思想 首先奇偶交替的序列有四种情况: 1) 奇头奇尾 (oo) 2) 奇头偶尾 (oe) 3) 偶头奇尾 (eo) 4) 偶头偶尾 (ee) 然后小区间的序列原创 2016-04-24 15:05:36 · 299 阅读 · 0 评论 -
[HDU 4027] Can you answer these queries? (线段树+区间开方)
HDU - 4027 给定一个长度为 N 的数列,有M个操作,操作分两种 一是让指定区间每个数都开方,二是询问区间的和 由于每个数都在LL范围内,所以实际上每个数开方的次数不会很多 用线段树维护区间和,开方就暴力到根,然后逐个开方 当发现区间全部都是 1的时候就直接return坑点: 所有数都大于 0 可能出现 l>r的情况,这时候要 swap(l,r) 每个case最后还要加一个换行原创 2017-01-16 12:34:17 · 394 阅读 · 0 评论