简单数据结构
文章平均质量分 93
pigzhouyb
一个来自浙江的可爱的萌萌哒的肥肥胖胖的OIer
展开
-
【算法详解】对于单调栈的重新理解
对于单调栈的重新理解关于什么是单调栈和为什么要用单调栈:乱头发节地平线Largest Rectangle in a Histogram关于什么是单调栈和为什么要用单调栈:单调栈,就是栈中的元素始终是单调递增的。对于某类特殊的问题,若当前状态与下一状态的单调性有关,就必须使用单调栈。乱头发节题目描述贤正的某 N 头奶牛 (1 <= N <= 80,000) 正在过乱头发节!由...原创 2018-11-03 08:23:05 · 880 阅读 · 0 评论 -
【算法详解】树状数组基本操作与差分
树状数组算法详解·目录树状数组的引入lowbit的含义树状数组的前缀和存储方式单点修改区间查询初始化模板例题——树状数组基本操作差分——区间修改备注树状数组的引入相信读者一定知道什么是前缀和,形如一串数a1,a2...,an,sum[i]=a[1]+a[2]+...+a[i]a1,a2...,an,sum[i]=a[1]+a[2]+...+a[i]a1,a2...,an,sum[i]=a[1]...原创 2018-11-29 13:36:46 · 382 阅读 · 3 评论 -
[NOIP2016]蚯蚓(单调性证明)
Solution问题描述本题中,我们将用符号 ⌊c⌋⌊c⌋ 表示对 cc 向下取整,例如:⌊3.0⌋=⌊3.1⌋=⌊3.9⌋=3⌊3.0⌋=⌊3.1⌋=⌊3.9⌋=3。蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓。蛐蛐国里现在共有 nn 只蚯蚓(nn 为正整数)。每只蚯蚓拥有长度,我们设第 ii 只蚯蚓的长度为 aiai (i=1,2,…,...原创 2019-03-13 21:10:18 · 302 阅读 · 0 评论 -
【习题·数据结构】子序列累加和(单调栈)
题目描述小x在学习数列。他想到一个数学问题:现在有N个数的数列。现在你定义一个子序列是数列的连续一部分,子序列的值是这个子序列中最大值和最小值之差。给你这N个数,小x想知道所有子序列的值得累加和是多少。Solution这道题虽然涉及区间最值,但是只需要查找所有区间最值之差即可,而并不用枚举每一个区间并查找区间内的每一个最值,这样的做法虽然可行但是复杂度不允许,我们可以考虑使用数据结构进行...原创 2019-03-17 14:45:26 · 1057 阅读 · 0 评论 -
『环形处理』环路运输
题目描述题解一个非常显然的结论,如果我们要计算i-j(i<j)的答案:如果i−j>n2i-j>\frac{n}{2}i−j>2n,一定选择n−(i−j)=j+n−i.n-(i-j)=j+n-i.n−(i−j)=j+n−i.此时(j+n)−i<n2(j+n)-i<\frac{n}{2}(j+n)−i<2n.此时相...原创 2019-06-17 16:10:28 · 296 阅读 · 0 评论 -
『分类讨论与并查集』Homework
题目描述题解如果yyy的取值比较小,我们可以每一次都对读入都直接用数组标记。如果yyy的取值比较大的话,我们可以查找1−t1-t1−t的最小值,t+1t+1t+1~2∗t2*t2∗t的最小值等等。最小值可以利用并查集来维护,倒着删除数字即可。具体实现的话让每一个数iii联想i+1i+1i+1,如果存在数字i就以自己为祖先;每次从第一个开始找即可。删除数字就把iii连向i+1i+1i+1,其...原创 2019-07-19 19:37:04 · 107 阅读 · 0 评论