
可持久化线段树
文章平均质量分 78
IED98
这个作者很懒,什么都没留下…
展开
-
3674: 可持久化并查集加强版 可持久化线段树
突然脑抽:今天学学持久化segtree吧,于是就有了这篇博客。可持久化segtree用了splay的动态加点的思想,把两棵树相同的部分共用,这样有效地节省了空间。#include #include #include #include #include #include using namespace std;int getint(){ int res;char c;原创 2015-01-17 03:36:02 · 690 阅读 · 0 评论 -
bzoj2223: [Coci 2009]PATULJCI 主席树
第一个是位置的个数,第二个是最大值,n个数后才是询问次数m.......用可持久化线段树记录某个区间里的个数,一开始插入的时候就要维护一个可持久化线段树。然后二分答案,每次将x和y向目标区域移动,当x==y时就是某个特定的数的个数了。然后判断即可。本题同3524.#include #include #include #include using namespace std;i原创 2015-01-21 20:54:38 · 612 阅读 · 0 评论 -
bzoj3226: [Sdoi2008]校门外的区间 线段树
由于知识最后一次询问,这样简化了操作。所有操作都可用取并和取交完成。第一个操作就直接把区间标记为1.第二个操作就把T左边的区间和T右边的区间取反。第三个操作就把T区间取反第四第五个操作类似。#include #include #include #include #include using namespace std;#define n (65536*2+1)#d原创 2015-02-21 21:24:07 · 551 阅读 · 0 评论 -
bzoj1146: [CTSC2008]网络管理Network 树套树
我还是太弱了,第一次碰主席树带删除的操作。首先我们按题目要求建一棵主席树(主席树只会是记前缀和),然后像COT那样用dfs序来维护,接着删除操作只是在树状数组上进行,树状数组只是记录每个点在原值的基础上加或减了多少。我们可以开个数组把子树都记下来,然后在二分的时候一边二分一边向下走就可以了。#include #include #include #include #include us原创 2015-07-12 21:32:09 · 631 阅读 · 0 评论 -
bzoj3932: [CQOI2015]任务查询系统 主席树
niabby讲过,不过niabby之后就退役了。。。。。。这个题离线后就是裸的主席树了(连删除操作都没有。。。)。然后怎么搞还要我说?空间要开这么大我也是醉了#include #include #include #include #include using namespace std;typedef long long sint;#define ss printf("orz\n")原创 2015-07-13 12:35:03 · 615 阅读 · 0 评论 -
bzoj3110: [Zjoi2013]K大数查询 树套数
写了个主席树套线段树 数据小,所以就过了23333#include #include #include #include #include using namespace std;int getint(){ int res;char c; while(c=getchar(),c'9'); res=c-'0'; while(c=getchar(),c>=原创 2015-07-13 12:45:39 · 709 阅读 · 0 评论