2019暑假模板
weixin_44508514
这个作者很懒,什么都没留下…
展开
-
ST表【模板】
const int maxn = 1e5+10;const int maxn2=log2(maxn)+1;//maxn2的值最好直接计算得出 int ST[maxn][maxn2];void Init(int n){ for(int j=1;j<=maxn2;j++){ for(int i=1;i+(1<<j)-1<=n;i++){ ST[i][j]=...原创 2019-07-10 15:54:09 · 98 阅读 · 0 评论 -
poj2104 K-th number(模板)
/************************************************┆ ┏┓ ┏┓ ┆┆┏┛┻━━━┛┻┓ ┆┆┃ ┃ ┆┆┃ ━ ┃ ┆┆┃ ┳┛ ┗┳ ┃ ┆┆┃ ┃ ┆┆┃ ┻ ┃ ┆┆┗━┓ ┏━┛ ┆┆ ┃ ┃ ┆ ┆ ┃ ┗━━━┓ ┆┆ ┃ AC代马...原创 2019-07-30 14:17:58 · 107 阅读 · 0 评论 -
归并求逆序对【模板】
const int maxn = 5e5 + 10;int arr[maxn];int tmp[maxn];ll merge(int l,int r){ if(l == r) return 0; ll ans=0; int mid = l + r >> 1; ans+=merge(l,mid),ans+=merge(mid+1,r); int i = l,j = mi...原创 2019-07-12 15:16:21 · 210 阅读 · 0 评论 -
二叉查找树【模板】
const int maxn = 1e6 + 10;struct Treap{ int l,r; int val,dat; int cnt,size;}a[maxn];int tot,root,INF=0x7fffffff;int New(int val){ a[++tot].val=val; a[tot].dat=rand(); a[tot].cnt=a[tot].size...原创 2019-07-11 16:26:07 · 90 阅读 · 0 评论 -
二叉查找树【初模板】
//二叉查找树BST const int maxn = 2e5 + 10;int tot,root,INF=1<<30;struct BST{ int l,r; int val;}a[maxn];int New(int val){ a[++tot].val=val; //a[tot].l=a[tot].r=0; return tot;}void build(){...原创 2019-07-10 20:57:25 · 75 阅读 · 0 评论 -
树状数组【模板】
const int maxn = 2e5 + 10;int c[maxn];int ask(int x){ int ans=0; for(;x;x-=x&-x) ans+=c[x]; return ans;}void add(int n,int x,int y){ for(;x<=n;x+=x&-x){ c[x]+=y; }}原创 2019-07-10 19:14:42 · 69 阅读 · 0 评论 -
线段树【模板】//待检验
const int MAXN=50010;int a[MAXN],ans[MAXN<<2],lazy[MAXN<<2];//a[]为原序列信息,ans[]模拟线段树维护区间和,lazy[]为懒惰标记void PushUp(int rt){ ans[rt]=ans[rt<<1]+ans[rt<<1|1];}void Build(in...原创 2019-07-10 16:32:49 · 103 阅读 · 0 评论 -
可持久化线段树【模板】poj_2104
/************************************************┆ ┏┓ ┏┓ ┆┆┏┛┻━━━┛┻┓ ┆┆┃ ┃ ┆┆┃ ━ ┃ ┆┆┃ ┳┛ ┗┳ ┃ ┆┆┃ ┃ ┆┆┃ ┻ ┃ ┆┆┗━┓ ┏━┛ ┆┆ ┃ ┃ ┆ ┆ ┃ ┗━━━┓ ┆┆ ┃ AC代马...原创 2019-07-10 16:07:38 · 94 阅读 · 0 评论 -
权值线段树【模板】
const int N = 2e4+100;int T[N<<2];void update(int p,int v,int rt,int l,int r)//值为p的个数加v(-1表示删除,1表示添加) { T[rt]+=v; if(l==r) return ; int m=(l+r>>1); if(p<=m) update(p,v,rt<<...原创 2019-07-10 16:02:39 · 211 阅读 · 0 评论 -
后缀数组(倍增)【模板】
const int maxn = 2e5+10;char s[maxn];int y[maxn],x[maxn],c[maxn],sa[maxn],rk[maxn],height[maxn];void get_SA(int n,int m)//n表示待求串s的长度,下标由1开始,m表示max(s[i]) { for(int i=1;i<=m;++i) c[i]=0;//桶的初始化 ...原创 2019-07-10 15:57:21 · 219 阅读 · 0 评论