随笔分类 -  线段树

摘要:水一下 阅读全文
posted @ 2017-09-04 20:09 Pacify 阅读(148) 评论(0) 推荐(0)
摘要:题意: 三个操作符 D x:摧毁第x个隧道 R x:修复上一个被摧毁的隧道,将摧毁的隧道入栈,修复就出栈 Q x:查询x所在的最长未摧毁隧道的区间长度。 1.如果当前区间全是未摧毁隧道,返回长度 2.如果在坐儿子的右区间或右儿子的左区间,返回这两个区间长度和 3.继续递归 阅读全文
posted @ 2017-08-30 20:52 Pacify 阅读(138) 评论(0) 推荐(0)
摘要:题意: 5种操作,所有数字都为0或1 0 a b:将[a,b]置0 1 a b:将[a,b]置1 2 a b:[a,b]中的0和1互换 3 a b:查询[a,b]中的1的数量 4 a b:查询[a,b]中的最长连续1串的长度 这题看题目就很裸,综合了区间更新,区间合并 我一开始把更新操作全放一个变量 阅读全文
posted @ 2017-08-30 11:38 Pacify 阅读(162) 评论(0) 推荐(0)
摘要:题意: Q a b 查询[a, b]区间的最长连续递增子序列的长度 U a b 将下表为a的元素更新为b 区间合并一般都有3个数组:区间最值,左区间最值和右区间最值 具体详见代码 阅读全文
posted @ 2017-08-29 16:33 Pacify 阅读(177) 评论(0) 推荐(0)
摘要:题意: 1 输入a:询问是不是有连续长度为a的空房间,有的话住进最左边 2 输入a b:将[a,a+b-1]的房间清空 思路:记录区间中最长的空房间 线段树操作: update:区间替换 query:询问满足条件的最左端点 阅读全文
posted @ 2017-08-29 10:39 Pacify 阅读(125) 评论(0) 推荐(0)
摘要:注意离散化!!!线段树的叶子结点代表的是一段!!! 给出下面两个简单的例子应该能体现普通离散化的缺陷: 1-10 1-4 5-10 1-10 1-4 6-10 普通离散化算出来的结果都会是2,但是第二组样例结果是3 如果相邻数字间距大于1的话,在其中加上任意一个数字,比如加成[1,2,3,6,7,1 阅读全文
posted @ 2017-08-28 10:08 Pacify 阅读(260) 评论(0) 推荐(0)
摘要:我用的线段树写的。 num数组表示已插入的数值的个数。 由于a[i]数值很大,但是n不是很大,所以要离散化处理 9 1 0 5 4 离散化后 4 1 0 3 2 这样保证最大值不会超过n 阅读全文
posted @ 2017-08-23 17:42 Pacify 阅读(160) 评论(0) 推荐(0)
摘要:线段树功能 update:成段更新 query:区间求和 阅读全文
posted @ 2017-08-23 16:10 Pacify 阅读(137) 评论(0) 推荐(0)
摘要:线段树功能:update:成段替换 成段更新去要用到延迟标记,具体调试代码就容易懂些 阅读全文
posted @ 2017-08-23 16:08 Pacify 阅读(124) 评论(0) 推荐(0)
摘要:先看看反素数 反素数的定义:对于任何正整数,其约数个数记为,例如,如果某个正整数满足:对任意的正整 数,都有,那么称为反素数。 从反素数的定义中可以看出两个性质: (1)一个反素数的所有质因子必然是从2开始的连续若干个质数,因为反素数是保证约数个数为的这个数尽量小 (2)同样的道理,如果,那么必有 阅读全文
posted @ 2017-08-23 10:11 Pacify 阅读(218) 评论(0) 推荐(0)
摘要:这道题要从后往前插入元素,最后一个元素的位置可以直接确定,倒数第i个的位置可以根据倒数i-1个的位置推测出来 线段树存储的是区间剩余的空位置。 阅读全文
posted @ 2017-08-18 11:13 Pacify 阅读(148) 评论(0) 推荐(0)
摘要:题意: 给出公告板的高和宽h,w,现在要粘贴公告(每条公告高度为1),粘贴在能粘贴的最上面的位置。给出n个公告的宽度,顺序粘贴,让你求每个公告在第几行。 分析: n最大为200000,不可能每次顺序地遍历。我们可以用线段树来记录每一行的剩余的宽度。但是行数h最大有10^9方,不可能开这么大的数组呀。 阅读全文
posted @ 2017-08-12 10:30 Pacify 阅读(115) 评论(0) 推荐(0)
摘要:线段树计算逆序数的原理: 用线段树来统计已插入的数的个数(所以要保证最大的那个数不能太大,否则数组都开不了),然后每插入一个数,就查询比插入的数大的个数,累加即可。 这个题还有一个特点就是,题目给的是0至n-1的全排列,也就是说每个数都不同。那么abcde的逆序数与bcdea的逆序数就很明了了。 假 阅读全文
posted @ 2017-08-12 09:28 Pacify 阅读(159) 评论(0) 推荐(0)
摘要:线段树功能:update:单点更新 query:区间最值 阅读全文
posted @ 2017-08-11 17:30 Pacify 阅读(192) 评论(0) 推荐(0)
摘要:线段树的基本知识可以先google一下,不是很难理解 线段树功能:update:单点增减 query:区间求和 阅读全文
posted @ 2017-08-11 16:19 Pacify 阅读(162) 评论(0) 推荐(0)