线段树&树状数组
天宇skyblue
这个作者很懒,什么都没留下…
展开
-
hdu 1754 线段树(首)
首先没有用递归的写法,写了总是WA,找不到错误…………然后又用递归的写了,终于AC。AC代码:#include #include #include #include #include #include using namespace std;#define MAXN 2000005int arr[MAXN];int n , m;int num_tree;原创 2015-07-31 20:55:01 · 351 阅读 · 0 评论 -
hdu5289 二分 + 区间最值查询(线段树) + 暴力
题目大意:求差值不超过k的连续子序列的个数思路:从左向右枚举每个数最远能走到哪里,即该数可以贡献几个区间,即几个结果。线段树查询每个区间的最大值和最小值。二分查找右边区间找到最远值。在二分这里卡了,卡了好久,猛然醒悟,开始点不动,只动最后一个…………更新的时候出了好多次问题,还是太弱……不过最终还是过了。任重而道远!#include #include #includ原创 2015-08-03 00:34:02 · 475 阅读 · 0 评论 -
51nod 1631 线段树
题目大意:鲨鱼巨巨2.0(以下简称小鲨鱼)以优异的成绩考入了51nod小学。并依靠算法方面的特长,在班里担任了许多职务。每一个职务都有一个起始时间A和结束时间B,意为小鲨鱼在[A, B]时间内,担任了某职务(inclusively)。现在给定小鲨鱼的职务履历表,你可以高效的给出小鲨鱼在某天担任了哪些职务吗?p.s. 由于小鲨鱼担任的职原创 2016-01-20 20:19:52 · 466 阅读 · 0 评论 -
hdu5592
上面的是原题解。我的思路一样,不过使用vector实现的,第一次查找了一遍超时,想了一下原来不用,直接找就行,最后险过,听说线段树特别快。有时间试试#include #include #include #include #include #include #include #include #include #include #include #include usi原创 2015-12-08 10:00:35 · 516 阅读 · 0 评论 -
hdu5493 线段树
题目大意:n个人,知道每个人的身高,还有他前面或者后面比他高的人数。问原队列最小字典序的身高,不可能输出impossible。思路:重点是想到线段树,找他前面或者后面的空位能不能有那么多,若不能则直接不可能。每次更新时找arr[i].num和n-i-arr[i].num的最小值去更新,保证字典序最小。#include #include #include #include #原创 2016-01-11 15:05:36 · 221 阅读 · 0 评论 -
wust1593线段树
题目大意:给你n个数,m次操作,操作有两种 0 l r ,计算n个数从l乘到r后置0的个数,1 a b ,将a位置换位b。每个数均小于100,n,m思路:简单的线段树,每个节点维护该区间拥有的2的因子个数,5的因子个数,以及数据里是否拥有0.每次计算,如果有0输出1,否则输出因子2和5的最小个数。ps:记录0的个数的时候没有0忘记初始化为0.。。。。。。。#include原创 2016-04-25 15:00:31 · 245 阅读 · 0 评论 -
codeforces86D 莫队算法
题目大意:给你n个数,m次询问,Ks为区间内s的数目,求区间[L,R]之间所有Ks*Ks*s的和。1思路:直接用莫队算法,前面的博文讲过原理。这里再说一下增加和删除操作。因为要求Ks*Ks*s,所以每次增加一个需要在原有结果上加(Ks*Ks*x - (Ks-1)*(Ks-1)*x),删除的话也是要相应的减去。莫队算法还是很好用的。#include #include #include原创 2016-05-18 09:46:29 · 899 阅读 · 0 评论