模板
otowa
这个作者很懒,什么都没留下…
展开
-
【模板】树状数组
//ATTANTION:// 可引入二维!!!! //use of mainint n;//use of arrint 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 · 276 阅读 · 0 评论 -
【模板】可持久化线段树
大神讲解下终于理解了可持久化和区间第 K大数的关系。。。终于理解了权值线段树是什么。。。权值线段树: 例: 1 1 2 7 9 11 一串数列,权值线段树里的 线段 指 有序数列 里的 一段区间 。。。 一般统计的是 一个数 (一个区间里的数)原创 2016-07-13 20:18:01 · 520 阅读 · 0 评论 -
【模板】splay
2019.1.22注释:DEl操作中,虽然实现了删除节点的操作,但是删除节点后的splay树十分难看所以正常操作是先splay前驱到根,然后splay后继到根的左(右)子,然后删除根的左(右)子的要删除的叶节点。如要搞清楚为什么这么做能减少时间,需要清楚splay期望的计算方法 #include<iostream>#include<cstdio>#d...原创 2016-03-19 22:23:18 · 340 阅读 · 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 · 337 阅读 · 0 评论 -
【模板】dinic(网络流)
#include#include#include#define MAXN 1000#define INF 0x7fffffffusing 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 · 310 阅读 · 0 评论 -
【模板】前向星+树链剖分+线段树
//use of pre_starint tail=0;int fst[maxn];struct edge{ int to,next; edge(){to=next=0'} }use[maxn];//use of partitionint fa[maxn],son[maxn];int size[maxn],top[maxn],dep[maxn];int po原创 2016-02-18 20:47:05 · 394 阅读 · 0 评论 -
【模板】treap(数组)
#include#define MAXN 100000using 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 · 598 阅读 · 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 · 435 阅读 · 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 · 272 阅读 · 0 评论 -
【模板】线段树
//use of mainint val[MAXN];//use of treestruct 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 · 291 阅读 · 0 评论 -
【模板】LCT+理解
原来一直不知道LCT是干什么的。。。只知道是动态树剖。。。(现在看好像也不是那么像了。。。)核心:用一丛平衡树维护一棵无根树。。。因为SPLAY与LCT相性最好。。。(个人感觉。。。毕竟还没看到拿TREAP写的。。。(PS:我孤陋寡闻。。。));所以用SPLAY维护!!!核心++:把一棵树剖成许多链。。。一条长度为log(n)的链是一棵SPLAY(关键字:dep)所以SPLAY原创 2016-07-06 09:27:04 · 639 阅读 · 0 评论