
线段树
文章平均质量分 69
running_in_dark
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
bzoj2957(线段树应用)
线段树维护区间上升子序序列长度,其中在up的时候是通过递归在深度log的时间内合并的。也就是说线段树可能可以干更多的事。 #include #include #include #include #include using namespace std; const int N=100005; struct aa { int l,r; int len;double mx; }a[N*4原创 2017-02-06 15:38:40 · 267 阅读 · 0 评论 -
poj2528(动态开点线段树——过不了)
#include #include #include #include #include using namespace std; const int N=80005; int n,l[N],r[N],tot=0,rt=1; struct aa { int lc,rc;bool pan; }a[N*28]; void up(int i) { int l=a[i].lc,r=a[i].rc;原创 2017-02-07 11:37:36 · 462 阅读 · 0 评论 -
bzoj3531(树链剖分+动态开点线段树)
每一个颜色建一个线段树 神方法,用主席树的计算方法,因为一个点在线段树中只会产生log个点,所以总的点数是在n log n的级别内的 所以均摊下来不会MLE #include #include #include #include #include #include using namespace std; const int N=100005; int n,C,Q; int w[N]原创 2017-02-09 12:46:48 · 393 阅读 · 0 评论 -
bzoj2212(线段树合并第一道)
话说像这样的,维护的东西需要数据结构且需要合并的问题,就可以考虑合并。例如本题,我们所需要从叶子节点把维护的数据不断递推上来,所以就需要线段树合并。 肯定是动态开节点 #include #include #include #include #include #include #include #include #define fi first #define se second #def原创 2017-02-26 09:36:45 · 698 阅读 · 0 评论 -
hdu3340(线段树+几何)
给定N个多边形,然后每次查询一段坐标内图形的面积。 我们可以将多边形拆解为多个梯形,转化为每一次在一个区间加一个等差数列,注意这个等差数列是实数的,其实就是一个区间加一个梯形面积,而梯形面积我们只需要知道左右端点的高就好,这样打标记,累加左右的高,是可以维护的。 这里线段树是要离散化的,所以下传标记找mid高度时,要注意不是线段树区间的中点,而是实际区间的中点, #inclu原创 2017-04-10 11:51:13 · 573 阅读 · 0 评论