被线段树虐惨,在阴影下写下了这个模板。 目前接触到的线段树适用范围:RMQ,区间更新或者单点更新,区间查询。 ...
分类:
其他好文 时间:
2016-08-08 22:45:16
阅读次数:
238
题目大意:一个数列,有两个操作:1.修改操作,将一段区间内的数加上c;2.查询操作,查询一段区间内的数的和。 思路:线段树裸题,区间修改、区间查询,维护和以及加上的数,由于无序,不需要向下推标记,只需在子树更新完之后更新根节点即可。 代码: ...
分类:
其他好文 时间:
2016-08-03 18:37:15
阅读次数:
132
主席树。区间更新区间查询。调的要死。因为update 忘了op->col=t->col。然后一直WA。。。而且开始自己的写法是错的。。。后来就换了一种写法。。。QAQ ...
分类:
其他好文 时间:
2016-07-29 22:55:37
阅读次数:
132
先做一次dfs求得每个节点为根的子树在树状数组中编号的起始值和结束值,再树状数组做区间查询 与单点更新。 #include<cstdio>#include<iostream>#include<cstdlib>#include<cstring>#include<string>#include<algo ...
分类:
移动开发 时间:
2016-07-25 16:13:49
阅读次数:
187
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4622 题意:给定一个长度不超过2000的字符串,之后有Q次区间查询(Q <= 10000),问区间中不同的子串数为多少? 学习资料: 知乎 SAM解析: 看了clj的PPT,对于最后为什么这样子插入节点 ...
分类:
其他好文 时间:
2016-07-15 19:52:38
阅读次数:
172
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4622 题意:给定一个长度不超过2000的字符串,之后有不超过1e5次的区间查询,输出每次查询区间中不同的子串个数? 做法1:字符串hash 一般的做法就是模拟每段子串的长度L(从1到 len),这样时间 ...
分类:
其他好文 时间:
2016-07-14 15:06:44
阅读次数:
138
初看这道题想到O(n2) 的暴力dp 用f[i][0]表示取第i个点为最低点时的答案, f[i][1]为最高点,且f[i][0] = max( f[j][1] ) +1 这样每次都要查询前面区间满足 h[i]>h[j] 的最大值, 可以考虑 线段树区间查询 或者 BIT 或者BST , 时间降至O( ...
分类:
其他好文 时间:
2016-07-12 23:01:28
阅读次数:
210
在ThinkPHP框架中,where方法的用法是查询语言的精髓,是ThinkPHP连贯操作的重要部分。where方法的参数支持字符串、数组和对象,数组查询是非常强大的,也是官方推荐的。where方法可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的查询操作。 1、字符串查询 2、数 ...
分类:
Web程序 时间:
2016-06-29 13:14:18
阅读次数:
261
有几个点卡常数…… 发现若第一维为位置,第二维为大小,那么修改时第一维修改区间,查询时第一维查询区间,必须挂标记。而这种情况下标记很抽象,而且Push_down不是O(1)的,并不可行。 那要怎么做呢?不妨交换一下,第一维为大小,第二维为位置,在第二维中挂标记,这样Push_down就是O(1)的了 ...
分类:
其他好文 时间:
2016-06-25 16:37:41
阅读次数:
169