线段树
hanhansoul
这个作者很懒,什么都没留下…
展开
-
poj3468 A Simple Problem with Integers
/* * poj3468 AC * 线段树的基本操作(注意输出要用long long) * 区间增减+区间查询 * * 不同于单点增减,区间增减并非立刻更新当前区间,而依赖于"懒惰标记"的运用。 * 中心思想: * 在更新时,只要某个结点的区间完全属于增减区间,则更新当前结点,并做上标记, * 表示当前结点的信息是可靠的,之后退出而不更新儿子结点。 * 在查询时,原创 2012-05-28 14:02:03 · 305 阅读 · 0 评论 -
poj1151 Atlantis
此处的讲解更加详细与系统,代码也要好看100倍。/* * poj1151 AC * 线段树+线段扫描+矩形分割 * 计算平面上重叠矩形的总面积的经典问题 * * 代码又长又丑,完全不能忍了。 * * 实数坐标需要离散化,并且需要一个简单的hash数组对应 * 分割方式有两种,纵向与横向,此处采用纵向分割。 * 构造线段树时,注意其区间此处取[l,r)更为方便合适。 * 初始原创 2012-06-02 21:01:47 · 528 阅读 · 0 评论 -
线段树
线段树的模板,基本包括线段树的各个算法了吧。#include#includeusing namespace std; /**覆盖区间长度!!**/ /**覆盖区间数统计!!**/long aLeft[10000],aRight[10000],aLow[10000],aHigh[100原创 2012-05-10 23:03:15 · 281 阅读 · 0 评论 -
poj2777 Count Color
/* * poj2777 AC * 线段树基础 * 注意:初始状态时board已经染为了颜色1 * 看到颜色只有30种时,果断想到了用二进制数来保存颜色,一个long足够了。 * * 线段树: * 线段树的基本操作参考AHYY的线段树讲稿。 * 现在终于注意到了队结点标记的重要性,即要保持结点的一致性。 * * 一致性: *原创 2012-05-26 13:16:07 · 363 阅读 · 0 评论 -
poj2374 Fence Obstacle Course
/* * poj2374 AC * 线段树+DP 这道题还是很典型的,值得一做。 * * */#include#include#define MAXN 200005 using namespace std; long tree[MAXN<<2];long a[50005],b[50005];long f[50000][2];long query(long k,long原创 2012-07-18 17:02:18 · 600 阅读 · 0 评论