数据结构
XHRlyb
这个作者很懒,什么都没留下…
展开
-
洛谷P2422 良好的感觉(简单数据结构复习)
这道题不是很难,只是太久没有敲过ST表和单调栈,就当贴个板子咯。而且,这道题的做法有很多,也比较常用,所以写一写这个题的题解吧 (*^__^*) 嘻嘻~题目链接:洛谷 P2422 题目大意:找出一段区间,使得“区间最小值×区间和”最大。 题解:单调栈 这种题有一个常见的思路是用枚举最小值是谁,然后就能确定区间长度。所以可以用正反两遍单调栈,处理出某个点作为最小值时左右两边各能扩展到哪里。最后原创 2017-10-15 09:56:02 · 414 阅读 · 0 评论 -
BZOJ 3938 Robot(超哥线段树)
题目大意:一条数轴上有n个机器人,对其进行m次操作。操作t_i commond k_i x_i (1≤k_i≤n)表示ti时刻将第ki个机器人的速度变为正方向上xi格每秒;操作t_i query则是询问ti时刻离原点最远的机器人到原点的距离(t1≤t2≤t3≤…≤tm,若同一时间发生多次操作,则按读入顺序依次执行)题目链接:BZOJ3938题解:以时间为x轴,位置坐标为y轴,commond...原创 2018-03-01 17:18:01 · 406 阅读 · 1 评论 -
BZOJ1558 等差数列(线段树)
题目大意:给出长为n(n<=100000)的序列v[],q(q<=100000)次操作,每次对当前序列的[s,t]加上以a为首项b为公差的等差数列,或询问当前序列[s,t]最少能划分成多少段等差数列。题目链接:BZOJ 1558题解:神奇的线段树! 等差数列差分之后值是相同的,便于统计最少划分数,所以我们可以维护差分数组。 这样修改操作就变成s-1和t+1两个位置的单点加和s~t-1的区间加了。原创 2018-03-04 21:32:03 · 491 阅读 · 0 评论 -
SDOJ #2013 随机数生成器(笛卡尔树)
题目链接:SDOJ #2013题目大意:给出一个n*m(n,m<=5000)的网格,每个网格有互不相同的权值,定义两个格子联通当且仅当从其中的某个格子只向下或向右走能到达另一个格子,求网格中字典序最大的反链。题解:反链即不存在一个被选中的格子位于另一个被选中的格子的右下方,要求字典序最大即每次选可选的格子中权值最大的一个。关键在于如何快速找到可选的权值最大的格子。 由于每次被标记不...原创 2018-06-13 20:29:15 · 483 阅读 · 0 评论