随笔分类 -  数据结构---线段树

摘要:POJ.3667 Hotel ( 线段树 )题意分析还需要好好理解一下代码总览#include #include #include #define nmax 200010using namespace std;struct Tree{ int l,r; int lenma... 阅读全文
posted @ 2017-08-14 11:49 pengwill 阅读(95) 评论(0) 推荐(0)
摘要:BZOJ.4034 [HAOI2015]树上操作 ( 点权树链剖分 线段树 )题意分析有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a 。 操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a... 阅读全文
posted @ 2017-08-14 10:55 pengwill 阅读(174) 评论(0) 推荐(0)
摘要:POJ.2763 Housewife Wind ( 边权树链剖分 线段树维护区间和 )题意分析给出n个点,m个询问,和当前位置pos。 先给出n-1条边,u->v以及边权w。 然后有m个询问,询问分2种: 一是讲第i条边的边权修改为w。 二是询问从当前位置走到点x经过的边权和(下次询... 阅读全文
posted @ 2017-08-13 20:41 pengwill 阅读(169) 评论(0) 推荐(0)
摘要:BZOJ.1036 [ZJOI2008]树的统计Count (树链剖分 线段树维护和与最值)题意分析(题目图片来自于 这里)第一道树链剖分的题目,谈一下自己的理解。 树链剖分能解决的问题是,题目中反复要求对链上信息进行修改和查询。如果依旧采取用dfs序的方法,会发现不适用,原因是d... 阅读全文
posted @ 2017-08-13 11:28 pengwill 阅读(174) 评论(0) 推荐(0)
摘要:HDU.5692 Snacks ( DFS序 线段树维护最大值 )题意分析给出一颗树,节点标号为0-n,每个节点有一定权值,并且规定0号为根节点。有两种操作:操作一为询问,给出一个节点x,求从0号节点开始到x节点,所能经过的路径的权值最大为多少;操作二为修改,给出一个节点x和值val... 阅读全文
posted @ 2017-08-12 14:58 pengwill 阅读(208) 评论(0) 推荐(0)
摘要:POJ.3321 Apple Tree ( DFS序 线段树 单点更新 区间求和)题意分析卡卡屋前有一株苹果树,每年秋天,树上长了许多苹果。卡卡很喜欢苹果。树上有N个节点,卡卡给他们编号1到N,根的编号永远是1.每个节点上最多结一个苹果。卡卡想要了解某一个子树上一共结了多少苹果。现在... 阅读全文
posted @ 2017-08-11 23:55 pengwill 阅读(243) 评论(0) 推荐(0)
摘要:HUD.2795 Billboard ( 线段树 区间最值 单点更新 单点查询 建树技巧)题意分析题目大意:一个h*w的公告牌,要在其上贴公告。输入的是1*wi的w值,这些是公告的尺寸。 贴公告要满足的条件: 1. 尽量往上,同一高度尽量靠左。 2. 求第n个广告所在的行数。 3. ... 阅读全文
posted @ 2017-08-05 13:02 pengwill 阅读(155) 评论(0) 推荐(0)
摘要:POJ.2528 Mayor’s posters (线段树 区间更新 区间查询 离散化)题意分析贴海报,新的海报能覆盖在旧的海报上面,最后贴完了,求问能看见几张海报。最多有10000张海报,海报左右坐标范围不超过10000000。 一看见10000000肯定就要离散化了,因为建树肯定... 阅读全文
posted @ 2017-08-04 17:37 pengwill 阅读(114) 评论(0) 推荐(0)
摘要:POJ.3468 A Simple Problem with Integers(线段树 区间更新 区间查询)题意分析注意一下懒惰标记,数据部分和更新时的数字都要是long long ,别的没什么大坑。代码总览#include #include #include #define nma... 阅读全文
posted @ 2017-08-04 09:51 pengwill 阅读(125) 评论(0) 推荐(0)
摘要:HDU.1556 Color the ball (线段树 区间更新 单点查询)题意分析注意一下pushdown 和 pushup 模板类的题还真不能自己套啊,手写一遍才行代码总览#include #define nmax 200000using namespace std;struc... 阅读全文
posted @ 2017-08-04 09:18 pengwill 阅读(152) 评论(0) 推荐(0)
摘要:HDU.1166 敌兵布阵 (线段树 单点更新 区间查询)题意分析加深理解,重写一遍代码总览#include #define nmax 100000using namespace std;struct Tree{ int l,r,val; int lazy; int... 阅读全文
posted @ 2017-08-04 09:16 pengwill 阅读(103) 评论(0) 推荐(0)
摘要:POJ.2299 Ultra-QuickSort (线段树 单点更新 区间求和 逆序对 离散化)题意分析前置技能 线段树求逆序对 离散化 线段树求逆序对已经说过了,具体方法请看这里离散化 有些数据本身很大,自身无法作为数组的下标保存对应的属性。 如果这时只是需要这堆数据的相对属性,... 阅读全文
posted @ 2017-08-02 21:09 pengwill 阅读(142) 评论(0) 推荐(0)
摘要:HDU.1394 Minimum Inversion Number (线段树 单点更新 区间求和 逆序对)题意分析给出n个数的序列,a1,a2,a3……an,ai∈[0,n-1],求环序列中逆序对最少的个数。前置技能 环序列 还 线段树的逆序对求法 逆序对:ai > aj 且 i ... 阅读全文
posted @ 2017-08-02 19:44 pengwill 阅读(110) 评论(0) 推荐(0)
摘要:HDU.1689 Just a Hook (线段树 区间替换 区间总和)题意分析一开始叶子节点均为1,操作为将[L,R]区间全部替换成C,求总区间[1,N]和线段树维护区间和 。 建树的时候初始化为1,更新区间时候放懒惰标记,下推标记更新区间和。 由于是替换,不是累加,所以更新的时... 阅读全文
posted @ 2017-08-02 17:44 pengwill 阅读(113) 评论(0) 推荐(0)
摘要:HDOJ(HDU).1754 I Hate It (ST 单点替换 区间最大值)点我挑战题目题意分析从题目中可以看出是大数据的输入,和大量询问。基本操作有: 1.Q(i,j)代表求区间max(a[k]) k∈[i,j]; 2.U(i,j)代表a[i] = j; 对于询问U,用单点替... 阅读全文
posted @ 2017-02-23 00:13 pengwill 阅读(110) 评论(0) 推荐(0)