随笔分类 -  Data Structure

摘要:学习了这篇📕,然后结合学长教的。 一、一维st表: 用st[i][j]表示从i开始,1 << j 个连续数的最值; 设我们求某一区间的最值,则可拆分成这个区间前半区间和后半区间的最值,然后再继续拆,就很logn了。 然后写的时候就先给st[i][0]赋a[i],然后从小区间到大区间循环,把st“n 阅读全文
posted @ 2019-07-14 15:33 XXrl 阅读(713) 评论(0) 推荐(0)
摘要:一、单调栈 例 -- Largest Rectangle in a Histogram:学习了两种写法(思路):按从低到高排列矩形。 (1) 🎈 栈s里保存的矩形,都是按从低到高排列的,但是新加入一个矩形a[i]后,它可能比现在栈最后加进来的数要大,也可能要小于等于;主要是每个矩形都要按自己的高度 阅读全文
posted @ 2019-07-13 10:26 XXrl 阅读(180) 评论(0) 推荐(0)
摘要:晚上脑子涨涨的,就总结一下最近写的分块入门9题吧。以下全是个人浅薄理解。 分块,一般就是把一组数据分成sqrt(n)块,然后根据题目要求,对其进行维护。基本要写的就是belong[N],还可以写l[N],r[N]来保存每一块的左右边界,要注意最后一块的有边界要设置为n。 tips:写blo=sqrt 阅读全文
posted @ 2019-07-03 19:26 XXrl 阅读(142) 评论(0) 推荐(0)
摘要:图解:https://blog.csdn.net/niushuai666/article/details/6662911 实现:用 pre[N]数组记录一个数的上级是谁,要想知道最高级,需要一级级查上去。 阅读全文
posted @ 2019-07-03 16:49 XXrl 阅读(104) 评论(0) 推荐(0)
摘要:https://www.luogu.org/problemnew/show/P2801 第一次写分块的题,学习了这个视频: https://www.bilibili.com/video/av6445624?from=search&seid=16889343910066931739 1 void bu 阅读全文
posted @ 2019-01-24 18:24 XXrl 阅读(143) 评论(0) 推荐(0)
摘要:sum[i]是1-i所有1的和,而i-sum[a[i]]就是在a[i]后面的数,即在i之前出现,却比他大的数。1是加在a[i]上,即i实际应该放的位置。而c[i]是为sum做准备的 1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 阅读全文
posted @ 2019-01-22 18:51 XXrl 阅读(182) 评论(0) 推荐(0)
摘要:1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 #include<iostream> 5 #include<stdlib.h> 6 #include<algorithm> 7 #include<queue> 8 #inclu 阅读全文
posted @ 2019-01-22 08:25 XXrl 阅读(170) 评论(0) 推荐(0)