开始集训了 =-=估计也就1 2星期的热度吧 自己 好好提高就是了 ~今天 起晚了....来做的时候 前面3题很水 看到第4个 很明显 线段树 不会手写了..----碎碎念线段树 题目类型 貌似 一般分成单点更新 区间查询区间更新 单点查询区间更新 区间查询线段树的种类又分成 -- 点树 && (忘...
分类:
其他好文 时间:
2014-07-02 22:24:20
阅读次数:
306
线段树单点更新模板 求区间最大值
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f
#define eps 1e-6
#define ll __int64
using namespace std;
int n,m...
分类:
其他好文 时间:
2014-07-01 09:27:53
阅读次数:
231
题意:
一个矩形内每个格子都有一个值 现在有q个操作 每个操作给出坐标(x,y)和长度L 每次操作输出以(x,y)为中心的边长为L的矩形内的最大值和最小值之和的一半 并将这个值更新到(x,y)坐标上
思路:
区间查询最大最小值 单点更新 明显是线段树的特征 不过这里是二维的线段树 我用的是树套树的写法
我对二维线段树的理解:(个人理解不一定正确)
初始化麻烦 相...
分类:
其他好文 时间:
2014-07-01 07:08:08
阅读次数:
209
树状数组是一种优雅的数据结构,利用的是前缀和的思想,相当于是线段树的一部分,常常用来快速解决区间求和问题,比相应的线段树要快,因为常数小。单点更新+区间求和这个是树状数组最最基础的应用了给个例题 hdu 1166 1 #include 2 #include 3 #include 4 #incl...
分类:
其他好文 时间:
2014-06-30 14:33:57
阅读次数:
210
题意:h,w,n:有一个h*w尺寸的木板,n张1*wi的海报,贴海报的位置尽量高,尽量往左,问每张海报贴的高度
看到1
关键在怎么建树,这里我们对h进行分割,每个高度都有等长的w,我们从上往下贴,如果当前高度
(在同一高度上l==r)的长度可以满足wi则可以贴,否则继续往下寻找。
#include
#include
#include
#include
...
分类:
其他好文 时间:
2014-06-28 08:13:53
阅读次数:
205
链接线段树的水题,拿来学习一下splay.本题涉及到求最大值以及单点更新,折腾了许久,差不多把splay搞明白了。按位置建树,按位置是一颗排序二叉树,对于区间的操作非常方便,每次操作都将需要的结点转自根的右孩子的左孩子,因为加了2个结点,一个最小的,一个最大的,据说是为了防止越界。这题只有单点,所以...
分类:
其他好文 时间:
2014-06-14 19:58:36
阅读次数:
224
单点更新的题目,记录一个开关数组就可以了。
这里使用bitset来做,bitset是非常好的容器。
最好还是不使用memset吧,因为memset只是清零,要赋予一定值的话,就可能会出错。...
分类:
其他好文 时间:
2014-06-08 10:53:13
阅读次数:
238
线段树的单点更新,区域查询操作。
#include
#include
#include
#include
#include
using namespace std;
#define lmin 1
#define rmax n
#define lson l,(l+r)/2,rt<<1
#define rson (l+r)/2+1,r,rt<<1|1
#define root lmin,rmax,1...
分类:
其他好文 时间:
2014-05-26 05:25:50
阅读次数:
187
一开始实在是不知道怎么做,后来经过指导,猛然发现,只需要记录某个区间内是否有值即可。
flag[i]:代表i区间内,共有的蛋糕数量。
放置蛋糕的时候很好操作,单点更新。
ip:老鼠当前的位置
寻找吃哪一个蛋糕的时候:
1,要寻找0-ip这个区间内,位置最大的一个蛋糕的位置,记为ll。
2,要寻找ip-n这个区间内,位置最小的一个蛋糕的位置,记为rr。
找到ll,rr之后,就可以根据l...
分类:
其他好文 时间:
2014-05-26 03:24:13
阅读次数:
366