线段树
文章平均质量分 86
zephyr_pro
人所有的愤怒全部来自自己的无知。
展开
-
DFS序在线段树中的应用 HDU-4578
线段树专题中有一个经典的例子,就是安排工作,题目的大意是,根据输入的关系组建关系树, 但是要用到线段树,必须是区间才能完成的工作,百思不得其解,就去问了万能的度娘,了解到DFS序这种高端的操作,代码不长但是相当给力,瞬间把一个数的根节点 转换成一个区间,这样这个题就成了大家熟悉的线段树区间更新问题,线段树单点查询问题,所以本题的难度也是如何去建立这样一个线段树,由于刚刚接触DFS序所以看不懂也是很正原创 2017-10-22 17:07:26 · 386 阅读 · 1 评论 -
B - A Corrupt Mayor's Performance Art HDU - 5023
题意:一组数列,有区间修改和区间询问两种操作 算法:线段树+状态压缩+区间更新 很明显区间更新的线段树,每次询问的不是颜色的个数,而是有哪些颜色,所以如何记录颜色就成了问题,首先确定的是颜色的种类数比较小,我开始想到的是每一个节点开一个30的bool数组但是担心会爆内存,实际上也不好实现,所以另外寻找了状态压缩的方法,把三十个颜色状态压缩成一个long long的数,因为 2 ^ 30 = 1...原创 2018-05-31 21:06:17 · 220 阅读 · 0 评论 -
hdu-6315 Naive Operations(线段树区间更新+剪枝单点更新)
题意:给两个数组a和b,a全部初始化为0, b初始化为一个序列并且不可改变,存在两种操作: 1、(add l r)为a在[l, r]区间里所有的数字+1 2、(query a b)询问∑⌊ai/bi⌋(i = l, l + 1, …., r - 1, r);题解:首先可以确定的是一个线段树区间更新的题,然后就是我们想什么时候⌊ai/bi⌋会+1,那么就是ai = n*bi的时候⌊ai/...原创 2018-07-28 08:17:42 · 167 阅读 · 0 评论 -
线段树带修改求区间gcd
题目:小Z的加油店 HYSBZ-5028前置技能:gcdgcdgcd性质: gcd(a1,a2,a3,......,an−2,an−1,an)=gcd(a1,a2−a1,a3−a2,......,an−1−an−2,an−an−1)gcd(a1,a2,a3,......,an−2,an−1,an)=gcd(a1,a2−a1,a3−a2,......,an−1−an−2,an−a...原创 2018-08-12 18:01:30 · 1626 阅读 · 0 评论 -
I - Colonial Mansions Gym - 101962I[二分+线段树]
题意:给出一个有n个数字的数列,有两种操作1 x H 将x位置的数字改为H2 x H 从x出发在每次数字相差不超过H的条件下可以向左右拓展多少个思路:可以维护一个差分序列,这里维护的是相邻两个数字的差值(为了条件2),然后通过线段树去维护这个差值,当更新的时候需要更新两个差值,i - 1和i,因为更改i位置的数字会影响它本身与后面的差值,同样会影响他前面数字与它的差值,所以每次更新需要...原创 2018-11-03 10:43:49 · 145 阅读 · 0 评论