线段树。段区间,终于完全自己A掉的。 1 #include 2 #include 3 4
#define MAXN 100005 5 #define lson l, mid, rt>1);20 sums[rt>1));21
adds[rt] = 0;22 ...
分类:
其他好文 时间:
2014-06-06 23:32:27
阅读次数:
279
题目要求求某段区间第一个没有出现的数(0,1,2,3.。。。)
,对于所有的区间,我们把这样的数加起来最后得到一个结果。首先,我们要求出这样的数,然后还得列举出所有的区间,复杂度太大了。换种思路,我们定住L,是不是一次性能求出所有的R所得出的结果,这就用到线段树的性质了,因为在移动L的过程中,移一步...
分类:
其他好文 时间:
2014-06-06 19:31:52
阅读次数:
292
线段树的一些基本应用,就是函数写了很多,有点繁琐。以每个物品的单价建树,刚开始写了个裸的想水过去直接MLE了,然后又离散化了下。离散化单价后建树,lz数组用来清零,s数组保存结点所含物品个数,co数组保存结点所含物品的所有花费,以找第k大的方式找到第n个物品所在的结点位置i,求出前i-1个结点所包含...
分类:
其他好文 时间:
2014-06-04 14:57:59
阅读次数:
384
求一部分和的线段树,因为是对5取余,所以给定一段区间a-b,假设其位置会有变化,最多会有5种和,那么就可以保留这五种和,在用lz进行延迟标记时,保存位置变化了多少也就知道了该从当前和转到哪一个和。当时把lz标记那么部分写成覆盖了,应该是+=,WA了两次。
1 #include 2 #inclu...
分类:
其他好文 时间:
2014-06-03 16:17:37
阅读次数:
235
这里以3次方来举例讲一下这题的做法,其它维类似。如果要求某一个值的3次方那么sum =
t^3,设t = x+y。那也就是sum = (x+y)^3.假如我让每个数都加z t = x+y+z,我可以让新的y =
y+z,这里发现新来的总会加在y上,那么可以给他一个延迟,slz,那么新的值t = t ...
分类:
其他好文 时间:
2014-06-03 16:14:05
阅读次数:
349
线段树。注意h范围(小于等于n)。 1 #include 2 #include 3 4 #define
MAXN 200005 5 #define lson l, mid, rty) ? x:y 8 9 int nums[MAXN>1;24
build(lson);25 bu...
分类:
其他好文 时间:
2014-06-02 19:46:28
阅读次数:
183
有一点类似区间K值的求法。这里有两颗树,一个是自己建的线段树,一个是题目中给定的树。以线段树和树进行区分。首先离散化一下,以离散化后的结果建线段树,线段树的节点开了2维,一维保存当前以当前节点为权值的树的节点是往左走的,另一维是往右走的,用一个vector保存一下以当前i节点为结束的询问,因为所有的...
分类:
其他好文 时间:
2014-06-02 18:20:45
阅读次数:
351
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4831
题目大概意思就是有多个风景区和休息区,每个风景区有热度,休息区的热度与最接近的分景区的热度相同,题目要求求出小于等于给定热度值的风景区和休息区的个数。显然如果直接暴力的话,复杂度为O(TKN...
分类:
其他好文 时间:
2014-06-02 18:03:59
阅读次数:
282
这几天把毕业答辩的事弄完了,于是买票出来玩,结果周六是百度之星的复赛,于是我就没有办法来做比赛了,不过看了看题,目测可以过我两三道题.今天已经是比赛的第二天了,我还一直没有时间来A掉这些题,今晚抽空先把最简单的线段树那道题A了再说.题目说的很清楚了,自己看吧.有一棵树,树的每个点有点权,每次有三种操...
分类:
其他好文 时间:
2014-06-02 16:00:42
阅读次数:
225
这几天把毕业答辩的事弄完了,于是买票出来玩,结果周六是百度之星的复赛,于是我就没有办法来做比赛了,不过看了看题,目测可以过我两三道题.
今天已经是比赛的第二天了,我还一直没有时间来A掉这些题,今晚抽空先把最简单的线段树那道题A了再说.
题目说的很清楚了,自己看吧.
有一棵树,树的每个点有点权,每次有三种操作:
1. Query x 表示查询以x为根的子树的权值和。
2. Change x y 表示把x点的权值改为y(0<=y<=100)。
3. Root x 表示把x变为根。...
分类:
其他好文 时间:
2014-06-02 15:04:03
阅读次数:
298