对于线段树的操作,维护左端值,维护右端值,维护种类数,更新的时候,如果左儿子的右端==右儿子的左端,种类数减一,剩下的就是细节了。#include#include#include#include#include#includeusing namespace std;#define lson l,mi...
分类:
其他好文 时间:
2014-11-05 22:53:52
阅读次数:
294
点更新 ,段更新, 段查询。 注意的是 线段树维护区间最大值 ,在反转的时候 不能直接取反,那样就变成了 当时的最小值。所以维护两个值,一个最小值 一个最大值 ,在进行反转操作的时候,取反并且交换两个值。#include#include#include#include#include#include...
分类:
其他好文 时间:
2014-11-05 19:19:06
阅读次数:
142
边查询,点更新的模板题。#include#include#include#include#include#includeusing namespace std;typedef long long LL;const int maxn = 222222;struct Node{ int to;in...
这题对最简单的树链剖分做了一些变化,在链的转移过程中要考虑前后链相邻节点颜色是否相同。对于线段树,只要维护三个值,左端点颜色,右端点颜色还有区间颜色总数就好了。#include #include #include #include #include #include #include #includ...
分类:
其他好文 时间:
2014-11-05 10:41:34
阅读次数:
181
单点替换,区间取相反数,区间求最大值,其实线段树里面只要保存最小值和最大值就可以了,取反之后最小值变成最大值最大值变成最小值。#include #include #include #include #include #include #include #include #include #inclu...
分类:
其他好文 时间:
2014-11-04 22:35:00
阅读次数:
202
点更新,区间询问和,最基础的树链剖分。#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#de...
最基础的树链剖分啦,存下来当模板#pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #define lson rt siz[son[now]]) { son[now...
分类:
其他好文 时间:
2014-11-04 16:38:29
阅读次数:
271
Aragorn's StoryTime Limit: 10000/3000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3494Accepted Submission(s): 973Pro...
分类:
其他好文 时间:
2014-11-04 10:48:44
阅读次数:
276