模板
otowa
这个作者很懒,什么都没留下…
展开
-
【模板】树状数组
//ATTANTION: // 可引入二维!!!! //use of main int n; //use of arr int tree[MAXN]; [ lowbit(x); ] inline int lowbit(int x) {return x&(-x);} [ add(x,val); ] int add(int a,int v) { for(int i原创 2016-02-18 21:57:28 · 262 阅读 · 0 评论 -
【模板】可持久化线段树
大神讲解下终于理解了可持久化和区间第 K大数的关系。。。 终于理解了权值线段树是什么。。。 权值线段树: 例: 1 1 2 7 9 11 一串数列,权值线段树里的 线段 指 有序数列 里的 一段区间 。。。 一般统计的是 一个数 (一个区间里的数)原创 2016-07-13 20:18:01 · 503 阅读 · 0 评论 -
【模板】splay
2019.1.22注释: DEl操作中,虽然实现了删除节点的操作,但是删除节点后的splay树十分难看 所以正常操作是先splay前驱到根,然后splay后继到根的左(右)子, 然后删除根的左(右)子的要删除的叶节点。 如要搞清楚为什么这么做能减少时间,需要清楚splay期望的计算方法 #include<iostream> #include<cstdio> #d...原创 2016-03-19 22:23:18 · 320 阅读 · 0 评论 -
【模板】后缀数组
虽然基本是照着打的。。。感觉还是很好。。。 #include #include #include #define MAXN 300000 using namespace std; int n,m,sa[MAXN],rank[MAXN],h[MAXN]; int _x[MAXN],_y[MAXN],tx[MAXN],bit[MAXN]; long long ans=0; ///*原创 2016-04-30 10:10:05 · 313 阅读 · 0 评论 -
【模板】dinic(网络流)
#include #include #include #define MAXN 1000 #define INF 0x7fffffff using namespace std; int n,m; int next[MAXN*2],fst[MAXN*2],to[MAXN*2]; int tail=1; int q[MAXN],h[MAXN],c[MAXN*2]; int ans=0; inli原创 2016-03-13 15:11:16 · 286 阅读 · 0 评论 -
【模板】前向星+树链剖分+线段树
//use of pre_star int tail=0; int fst[maxn]; struct edge { int to,next; edge(){to=next=0'} }use[maxn]; //use of partition int fa[maxn],son[maxn]; int size[maxn],top[maxn],dep[maxn]; int po原创 2016-02-18 20:47:05 · 374 阅读 · 0 评论 -
【模板】treap(数组)
#include #define MAXN 100000 using namespace std; int n; int ch[MAXN][2],use[MAXN],rnd[MAXN]; int size=0,root=0; inline int cmp(int x,int num) { if(num==use[x])return -1; return num<use[x] ? 0:1原创 2016-03-18 18:45:27 · 576 阅读 · 0 评论 -
【模板】Treap
#include #include using namespace std; struct Treap { int num,size,fix; Treap *ch[2]; Treap(int x)原创 2016-03-05 21:02:47 · 419 阅读 · 0 评论 -
【模板】(未完成)AVL
#include #include using namespace std; struct AVL { int num,size,h; AVL *ch[2]; AVL(int x) { num=x,size=1,h=1; ch[0]=ch[1]=NULL;原创 2016-03-05 19:36:28 · 253 阅读 · 0 评论 -
【模板】线段树
//use of main int val[MAXN]; //use of tree struct tree { int maxx,sum; int add; tree() {maxx=sum=add=0;} }use[MAXN*4]; [ lc(x); rc(x); ] inline int lc(int x){ return x << 1;} inline int rc(i原创 2016-02-18 21:37:55 · 275 阅读 · 0 评论 -
【模板】LCT+理解
原来一直不知道LCT是干什么的。。。只知道是动态树剖。。。(现在看好像也不是那么像了。。。) 核心:用一丛平衡树维护一棵无根树。。。 因为SPLAY与LCT相性最好。。。(个人感觉。。。毕竟还没看到拿TREAP写的。。。(PS:我孤陋寡闻。。。)); 所以用SPLAY维护!!! 核心++:把一棵树剖成许多链。。。一条长度为log(n)的链是一棵SPLAY(关键字:dep) 所以SPLAY原创 2016-07-06 09:27:04 · 617 阅读 · 0 评论