2017-08-30 16:44:33 writer:pprp 上午刚刚复习了一下不带有lazy标记的线段树, 下午开始学带有lazy标记的线段树 这个是我看大佬代码敲的,但是出了很多问题, 这提醒我: 1、要注意边界条件,一个边界条件的取等或者不取等,小于或者大于出错的话就直接运行不了了 2、注意 ...
分类:
其他好文 时间:
2017-08-30 17:09:50
阅读次数:
161
搞定了 另外区间查询还可以支持更多的条件,只要是针对一个字段的条件都可以写到一起,例如:$map['name'] = array(array('like','%a%'), array('like','%b%'), array('like','%c%'), 'ThinkPHP','or'); 最后的查 ...
分类:
Web程序 时间:
2017-08-26 14:27:18
阅读次数:
153
题目大意: 给你一个数组,给你如下几种操作: s l r mod 查询区间【l,r】中模m等于mod的数字之和; + p r 将p位置的数加上r后模m; - p r 将p位置的数减去r后模m; 解题思路: 一般进行区间查询,位置操作可以使用线段树或者树状数组解决(暂时只会树状数组);这题的特殊之处就 ...
分类:
其他好文 时间:
2017-08-22 23:13:18
阅读次数:
213
新知识,其实和之前讲过的一维差不多,只要维护四个数组就行了,不过还是参考了别人的代码,还是要好好练练才行 ...
分类:
编程语言 时间:
2017-08-19 23:35:23
阅读次数:
215
如何将普通树状数组升级 普通的单点修改单点查询就不讲了,从区间修改和单点查询讲起。 原来的值存在a[]里面,多建立个数组c1[],注意:c1[i]=a[i]-a[i-1]。 那么求a[i]的值的时候a[i]=a[i-1]+c1[i]=a[i-2]+c1[i]+c1[i-1]=…..=c1[1]+c1 ...
分类:
编程语言 时间:
2017-08-19 22:20:59
阅读次数:
231
题面: 对于小Ho表现出的对线段树的理解,小Hi表示挺满意的,但是满意就够了么?于是小Hi将问题改了改,又出给了小Ho: 假设货架上从左到右摆放了N种商品,并且依次标号为1到N,其中标号为i的商品的价格为Pi。小Hi的每次操作分为两种可能,第一种是修改价格——小Hi给出一段区间[L, R]和一个新的 ...
分类:
其他好文 时间:
2017-08-16 20:17:30
阅读次数:
134
虽然说这道题线段树很好做,但毕竟树状数组常数小又好写,所以还是写个模板吧。 区间加转为前缀加 区间和转为前缀和 我们讨论一个1~k的区间加x对于一个前缀和val【i】的影响 对于所有k<i的更新,对val[i]的贡献为val[i]+=k*x 对于所有k>=i的更新,对val[i]的贡献为val[i] ...
分类:
编程语言 时间:
2017-08-12 15:28:43
阅读次数:
203
768B - Code For 1 思路:类似于线段树的区间查询。 代码: ...
分类:
其他好文 时间:
2017-08-11 14:42:03
阅读次数:
129
1 //线段树入门,单点修改,区间查询 2 #include 3 const int maxn = 3*1e6+5; 4 struct node 5 { 6 int l,r; 7 node *pl, *pr; 8 int s; 9 }; 10 node t[maxn]; 11 int cnt = 0... ...
分类:
其他好文 时间:
2017-08-10 01:11:19
阅读次数:
151
为什么这道题会被打上'LCT'的tag呢? 不管怎么说先膜LCT 如果没有过于鬼畜的艹作,查询子树有一个方法就是用数据结构维护dfs序 此题仅有单点修改,于是我们考虑用线段树维护dfs序 先以1为根dfs一次 修改->线段树单点修改 子树最小值->线段树区间查询 还有一个艹作:换根 先约定记号:[l ...
分类:
其他好文 时间:
2017-08-09 12:51:41
阅读次数:
132