动态区间 $k$ 大主席树 + 树状数组树状数组的每个点对应一颗线段树首先将所有点加入数据结构 枚举 x code: for(int i = x; i <= n; i += Lowbit(i)) Poi_G(root[i], 1, Length, k, val);区间修改时将所有的后缀树的相应位置 ...
分类:
其他好文 时间:
2018-09-04 13:37:50
阅读次数:
183
https://cn.vjudge.net/problem/POJ-2528 题意 给定一些海报,可能相互重叠,告诉你每个海报的宽度(高度都一样的)和先后叠放顺序,问没有被完全盖住的有多少张? 分析 海报最多10000张,但是墙有10000000块瓷砖长,海报不会落在瓷砖中间。 如果直接建树,就算不 ...
分类:
其他好文 时间:
2018-09-04 01:47:20
阅读次数:
159
https://cn.vjudge.net/problem/HDU-4614 题意 n个花瓶,m个操作,花瓶里面有的有花,有的是空的。1操作是从a开始往右放b朵花,花瓶有了的不放,跳过,直到a右边都放满了花,多余的扔了。输出本次放花的起始位置,如果一朵不能放,输出一句话。 分析 1~N 的区间,用1 ...
分类:
其他好文 时间:
2018-09-03 02:39:47
阅读次数:
145
https://cn.vjudge.net/problem/HDU-4578 题意 4种操作,区间加,区间乘,区间变为一个数,求区间的和、平方和以及立方和。 分析 明显线段树,不过很麻烦。。看kuangbin大神的代码打的 用sum1,sum2,sum3分别代表和、平方和、立方和。 懒惰标记使用三个 ...
分类:
其他好文 时间:
2018-09-02 18:43:23
阅读次数:
112
https://cn.vjudge.net/problem/HDU-3974 题意 有一棵树,给一个结点分配任务时,其子树的所有结点都能接受到此任务。有两个操作,C x表示查询x结点此时任务编号,T x y表示给x结点分配编号为y的任务。 分析 题目读起来就很有区间修改的味道,将一个区间变为一个值。 ...
分类:
其他好文 时间:
2018-09-02 14:36:49
阅读次数:
190
https://cn.vjudge.net/problem/HDU-1698 题意 大小为n的数组,数组元素初始值为1,有q次操作,x,y,z表示从第x到第y所有的元素的值变为z,最后问1到n的和。 分析 区间修改,给每个区间打标记。注意这里是直接把整个区间都变为某个数。 ...
分类:
其他好文 时间:
2018-09-02 02:00:14
阅读次数:
156
学习和参考 下面是支持区间修改和区间查询的zkw线段树模板,先记下来。 #include <algorithm> #include <iterator> #include <iostream> #include <cstring> #include <iomanip> #include <cstdl ...
分类:
其他好文 时间:
2018-08-28 14:25:45
阅读次数:
171
就是线段树维护异或和。之前我线段树区间修改down都是修改当前区间,结果debug出不来,改成每次向下了。 题干: 代码: ...
分类:
其他好文 时间:
2018-08-25 22:17:20
阅读次数:
230
线段树:我还是很强的 简略讲解 要用线段树维护区间,我们要明确: 线段树存什么东西 怎么合并 如果有区间修改,怎么打标记 对于区间最大子段和,我们可以记录四个值:以维护的区间左端点为起点的最大子段和,以维护的区间右端点为终点的最大子段和,在维护区间内的最大子段和 和维护区间所有元素的和 合并的话稍微 ...
分类:
其他好文 时间:
2018-08-20 21:41:54
阅读次数:
193
一维:令 $v_i$ 为差分数组,那么 $[0, k]$ 的前缀和就是 $\sum{v_i(k+1 i)} = (k+1) \cdot \sum{v_i} + \sum{v_i \cdot ( i)}$,树状数组维护一下 $v_i$ 和 $v_i \cdot i$ 即可。 二维:和一维的推导类似,维 ...
分类:
编程语言 时间:
2018-08-20 00:35:15
阅读次数:
156