![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
早睡身体好_
这个作者很懒,什么都没留下…
展开
-
HDU1698_Just a Hook(线段树)
作为一名10年dota老玩家,看见屠夫心头一热,想起当年熬夜开黑打dota的日子,然而现在多么苦逼。。。 本题是线段树的模板题,这里的区间更新需要使用延迟标记,不然会超时。每次做这些线段树的时候总会因为一两点细节而错好几次。可能还是自己基础不扎实,写的代码有点少。在阅读别人的程序时也在不断地加深自己对线段树的理解,也学到了好多编码上的细节。主要体现在向下传递延迟标记的函数: void pus...原创 2019-04-25 22:10:37 · 264 阅读 · 0 评论 -
HDU1754_I Hate It(线段树)
本题是线段树的模板题,注意本题会有多组输入。 http://acm.hdu.edu.cn/showproblem.php?pid=1754 #include<iostream> #include<cstdio> using namespace std; const int maxn=200005; int ans[maxn<<2]; int max(int...原创 2019-04-25 20:44:04 · 247 阅读 · 0 评论 -
线段树
线段树简介: 线段树用于对数组的一段区间进行大量的查询或者更新操作。例如给定一个数组,有两种操作,第一种是让某个区间内的数都加上某个值,第二种是查询某个区间内的数的总和。第一种操作我们可以用遍历数组的方法。第二种操作我们可以用一个二维数组来保存区间i到j的和。但是这两种方法组合到一起会非常耗时,最关键的是,而且改变了数组中的数后,对二维数组的维护也很麻烦。这时线段树就可以很好地解...原创 2019-04-23 15:54:59 · 449 阅读 · 0 评论 -
洛谷P3372 【模板】线段树
本题是线段树的模板题,对于初学者来说难度适中,我们需要对代码段中的一些细节进行一些推敲。 线段树是对数组的区间的操作,我们需要注意的是,在表示区间下标的时候,最好用1~n,不要用0~n-1,这样可以帮助我们更简洁的表示一段区间的起点、终点及其区间长度。这个细节会贯穿整段代码。而且本题的数据范围是long long,所以我们可以将代码中所有的变量都定义为long long型,方便阅读和理解。 在...原创 2019-04-23 16:24:38 · 276 阅读 · 0 评论 -
HDU2795_Billboard(线段树)
本题的难点在于将题目中的信息转化到线段树中,本题是要找出背景板上可以放下一条公告的第一行的行号。若该行所剩空间大于公告所需空间,则可以放下该公告。那么我们就可以将背景板上每一行所剩的空间当做数组的元素,也就是线段树的叶子结点。而线段树中非叶子结点所储存的就是该区间内所剩空间的最大值,若这个最大值小于公告所需的空间,则说明这段区间内的所有行都放不下这条公告。明白这个转化过程后写个线段...原创 2019-04-27 13:28:07 · 289 阅读 · 0 评论