可持久化数据结构
Sirius_Ren
▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇自己刮~~~
展开
-
POJ 2104 可持久化线段树
这就是以后我的可持久化线段树的模板啦~//By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define N 100010 int n,m,cnt,b[N],cpy[N],now,root[N]; struct Tree{int l,r,cnt;}tree[N*20原创 2016-10-09 21:49:31 · 783 阅读 · 0 评论 -
BZOJ 3524主席树裸题 (雾)
思路: 按权值建一棵主席树 (但是这好像不是正解 空间复杂度是不对的…….)//By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define N 555555 int n,m,cnt,root[N],a[N],xx,yy; struct Tree{int原创 2017-01-07 10:59:59 · 723 阅读 · 0 评论 -
BZOJ 4448 主席树+树链剖分(在线)
为什么题解都是离线的…… (抄都没法抄) 搞一棵主席树 1 操作 新树上的当前节点设成1 2 操作 查max(i-xx-1,0)那棵树上这条路径上有多少个点是1 让你找经过了多少个点 查的时候用deep 搞出来就好了//By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using n原创 2017-01-07 16:31:59 · 701 阅读 · 0 评论 -
BZOJ 3123 主席树 启发式合并
思路: 主席树 搞树上的k大 x+y-lca(x,y)-fa(lca(x,y)) 按照size小树往大树上插 启发式合并 n*log^2n的 搞定~//By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define N 666666 const int i原创 2017-01-10 15:06:11 · 649 阅读 · 0 评论 -
BZOJ 2588 主席树
思路: 主席树 做完BZOJ 3123 觉得这是道水啊…… 然后狂RE 狂MLE 要来数据 忘把deep[1]设成1了…………………………. 啊wocccccccccccccccc//By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define N原创 2017-01-12 17:44:04 · 580 阅读 · 0 评论 -
BZOJ 3166 set+可持久化trie树(OR 莫队)
思路: 1.找次大值 我们不妨设当前点是次大的 那这段区间为 左边第二个比它大的点的坐标+1 和右边第二个比它大的点的坐标-1 2.用可持久化trie树找异或最大值也可以用莫队//By SiriusRen #include <set> #include <cstdio> #include <algorithm> using namespace std; #define N 50050 i原创 2017-01-13 08:53:59 · 625 阅读 · 0 评论 -
HDU 4757 可持久化trie树
思路: 可持久化trie树裸题 x->y 就是x +y -lca(x,y) -fa[lca(x,y)] 学了可持久化线段树 再看这个就无压力了注意是多组数据……//By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define N 100050 #defin原创 2017-01-12 23:35:28 · 948 阅读 · 0 评论 -
BZOJ 4012 树链剖分+主席树
//By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define int long long #define N 300050 int n,Q,A,age[N],w[N],v[N],next[N],first[N],tot,rev[N],root[N]; int原创 2017-01-29 21:21:11 · 548 阅读 · 0 评论 -
BZOJ 3674/BZOJ 3673 主席树
思路: 主席树维护可持久化数组 剩下的就是普通的并查集了…//By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N=200050; int n,m,op,xx,yy,L[N*50],R[N*50],tree[N*50],root[N],cnt;原创 2017-02-15 00:14:59 · 549 阅读 · 0 评论