splay
2020100XWH
这个作者很懒,什么都没留下…
展开
-
trie树 左儿子右兄弟链表辅助记录(节约空间) uva11732
#include<bits/stdc++.h>using namespace std;const int maxx=4e6+10;struct tire{ int head[maxx]; int next[maxx]; char ch[maxx]; int tot[maxx]; int sz; long long ans; void clear() { sz=1; tot[0]=head[0].原创 2022-02-06 21:45:22 · 52 阅读 · 0 评论 -
trie uva3942
前缀树保存字符串集合#include<bits/stdc++.h>using namespace std;const int maxx=400005;const int mod=20071027;int idx(char c) {return c-'a';}int ch[maxx][30]; int val[maxx]; int sz;void insert(char* s) { int u=0,n=strlen(s);原创 2022-02-03 03:46:37 · 330 阅读 · 0 评论 -
二维线段树(uva11992)
封装一个线段树包含维护信息,标记,maintain,pushdown,update,query操作#include<bits/stdc++.h>#define ls p<<1#define rs p<<1|1using namespace std;const int N=1<<18;const int inf=1e9+5;int _max,_sum,_min,op,x,y,x2,y2,v,r,c,m,i,j;struct tree{原创 2022-02-03 02:43:47 · 97 阅读 · 0 评论 -
洛谷3373
线段树模版题#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N=1000005;ll n,m,mod,type,x,y,k;ll ans[4*N],mul_tag[4*N],add_tag[4*N],aa[N];inline ll ls(ll p){ return p<<1;}inline ll rs(ll p){ return p<&原创 2022-01-31 11:16:15 · 476 阅读 · 0 评论 -
uva 3938 静态数组 动态最大连续和(线段树
线段树维护区间前缀和后缀和连续和最大(前两者自身递推配合前缀和数组,后者分解为自身和前两种结合情况)支持nlogn插入logn查询目标#include <bits/stdc++.h>#define lson l,m,i<<1#define rson m+1,r,i<<1|1using namespace std;typedef long long ll;const ll inf=1223372036854775807;struct node {原创 2022-01-29 07:00:07 · 140 阅读 · 0 评论 -
二叉树建树遍历删树板子
建树遍历和删树都是从一个‘根’节点引入,因#include<bits/stdc++.h>using namespace std;const int n=1000;int pre[n],in[n],post[n];int k;struct node{ int value; node*l,*r; node(int value=0,node*l=NULL,node*r=NULL):value(value),l(l),r(r){}};void buildtree(int l.原创 2021-07-31 11:25:32 · 104 阅读 · 0 评论 -
建二叉搜索树(数组角度)类堆
注意数组范围防止树的退化#include<iostream>#include<cstring>#include<algorithm>#include<math.h>using namespace std;int tre1[300];int tre2[300];void build(int *tre,int now,int k){ if(tre[now]==-1) tre[now]=k; else if(k>t原创 2021-08-08 11:51:39 · 54 阅读 · 0 评论 -
第一棵树(
#include<iostream>#include<cstring>#include<algorithm>#include<math.h>using namespace std;struct node{ node *l; node *r; int value;};//指针的访问需要指针void build(node * &root,int &k){ if(root==NULL) { .原创 2021-08-06 00:55:38 · 54 阅读 · 0 评论 -
hdu3726
离线:统计完所有输入数据在处理问题treap树#include<iostream>#include<cstdlib>#include<cstdio>#include<cstring>#include<vector> #include<algorithm>using namespace std;struct node{ node *ch[2]; int s,v; int r; node (int v):v(原创 2021-08-30 14:40:23 · 117 阅读 · 0 评论 -
splay的翻转应用
#include<iostream>#include<cstring>#include<algorithm>#include<math.h>#include<cmath>#include<vector>#include<queue>#include<set>#include<map>#include<cstdio>#include<string>//完整头.原创 2021-09-02 01:27:35 · 84 阅读 · 0 评论