当前位置: 首页 > news >正文

河南建设工程一体化/百度代做seo排名

河南建设工程一体化,百度代做seo排名,做排行榜的网站,南通网站建设服务公司可持久化Treap只能使用非旋转版Treap。 非旋转Treap,即使用“合并”(Merge)和“分裂”(Split)两个操作来完成“插入”(Insert)和“删除” (Delete)操作。这样可以保证在进行插入和删除操作时,只改变一条链上的点,最多修改log2nlog_2nlog2​n个…

可持久化Treap只能使用非旋转版Treap。
非旋转Treap,即使用“合并”(Merge)和“分裂”(Split)两个操作来完成“插入”(Insert)和“删除” (Delete)操作。这样可以保证在进行插入和删除操作时,只改变一条链上的点,最多修改log2nlog_2nlog2n个结点。
可持久化Treap,就需要在插入和删除时,新建一条链的结点,作为一个新的版本。
建立新版本

#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN=500005,MAXLOG=20;struct Node
{int key;int fix,siz;Node *lch,*rch;Node(){}Node(int k,Node *nul){key=k;fix=rand();siz=1;lch=rch=nul;}void Update(){siz=1+lch->siz+rch->siz;}
};
Node nodes[MAXN*MAXLOG*2],*cur,*null,*root[MAXN];
Node *NewNode(Node *v)
{*cur=*v;cur++;return cur-1;}
Node *NewNode(int val)
{*cur=Node(val,null);cur++;return cur-1;}
void Init()
{null=nodes;*null=Node(0,null);null->fix=0;null->siz=0;cur=nodes+1;root[0]=null;
}
Node *Merge(Node *A,Node *B)
{if(A==null)return B;if(B==null)return A;Node *t;if(A->fix<=B->fix)A->rch=Merge(A->rch,B),t=A;elseB->lch=Merge(A,B->lch),t=B;t->Update();return t;
}
void Split(Node *rt,int val,Node *&ansL,Node *&ansR)
{if(rt==null){ansL=null;ansR=null;return;}Node *t=NewNode(rt);if(val<rt->key){Split(rt->lch,val,ansL,ansR);t->lch=ansR;ansR=t;}else{Split(rt->rch,val,ansL,ansR);t->rch=ansL;ansL=t;}t->Update();
}
void Insert(int his,int now,int val)
{if(root[his]!=null)root[now]=NewNode(root[his]);Node *nl,*n,*nr;Split(root[now],val,nl,nr);n=NewNode(val);root[now]=Merge(Merge(nl,n),nr);
}
void Delete(int his,int now,int val)
{if(root[his]!=null)root[now]=NewNode(root[his]);Node *nl,*n,*nr;Split(root[now],val-1,nl,nr);Split(nr,val,n,nr);if(n->key==val)n=Merge(n->lch,n->rch);root[now]=Merge(Merge(nl,n),nr);
}
int GetRank(int id,int val)
{Node *u=root[id];int res=0;while(u!=null){if(val<=u->key){u=u->lch;}else{res+=u->lch->siz+1;u=u->rch;}}return res+1;
}
int GetKthNum(int id,int k)
{Node *u=root[id];while(u!=null){int rk=u->lch->siz+1;if(k<rk)u=u->lch;else if(k==rk)return u->key;else{k-=rk;u=u->rch;}}return 0;
}
int FindPrev(int id,int val)
{Node *u=root[id];int res=-0x7FFFFFFF;while(u!=null){if(u->key<val){res=max(res,u->key);u=u->rch;}elseu=u->lch;}return res;
}
int FindNext(int id,int val)
{Node *u=root[id];int res=0x7FFFFFFF;while(u!=null){if(u->key>val){res=min(res,u->key);u=u->lch;}elseu=u->rch;}return res;
}int main()
{freopen("fhqTreap_data.in","r",stdin);int n,v,opt,x;Init();Insert(0,0,0x7FFFFFFF);Insert(0,0,-0x7FFFFFFF);scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d%d%d",&v,&opt,&x);root[i]=root[v];switch(opt){case 1:Insert(v,i,x);break;case 2:Delete(v,i,x);break;case 3:printf("%d\n",GetRank(v,x)-1);break;case 4:printf("%d\n",GetKthNum(v,x+1));break;case 5:printf("%d\n",FindPrev(v,x));break;case 6:printf("%d\n",FindNext(v,x));break;}}return 0;
}
http://www.lbrq.cn/news/730531.html

相关文章:

  • 网站不符合个人备案性质/百度推广关键词排名在哪看
  • 核酸检测公司上市/seo技术培训海南
  • 网站备案关闭/外贸怎么建立自己的网站
  • 建设政府网站申请/营销软文是什么
  • 黑龙江网站建设巨耀网络/行业关键词分类
  • 淘宝网的网络营销方式/网站seo教材
  • 陕西做网站电话/百度线上推广
  • 我想克隆个网站 怎么做/烟台seo
  • 自动化设计网站建设/网络推广公司收费标准
  • 做株洲网站需要多少钱/江苏搜索引擎优化
  • 宁波电商平台网站建设/外国搜索引擎登录入口
  • 西安专业做网站的公司/临沂seo排名外包
  • java网站开发平台/数据网站
  • 上海装饰公司30强排名/成都seo网络优化公司
  • 在日本做色情网站/求职seo推荐
  • 网站搭建平台流程/怎么在百度上发布信息广告
  • 男人和女人做污的视频网站/网站正能量免费推广软件
  • 意识形态网站建设/网站建设开发外包公司
  • 公司网站建设行业怎么样/深圳网络推广营销
  • seo如何推广网站/google play
  • 做网站需要会写代码6/百度关键词点击排名
  • 商业案例网站/最新长尾关键词挖掘
  • 网站显示系统建设中/推广
  • 互联网媒体平台有哪些/seo和sem的区别
  • 网站怎么做能提升ip流量/淘宝店铺怎么引流推广
  • 企业门户网站运营推广/如何建立自己的网站?
  • 秦皇岛网站制作公司哪家好/南京seo优化公司
  • 帮人做推广的网站/上海网络推广公司网站
  • 网络综合布线设计报告/广州:推动优化防控措施落
  • 宝鸡网站建设公司都有哪些/汕头搜索引擎优化服务
  • 本地组策略编辑器图形化工具
  • 相机曝光调节与自动曝光控制详解
  • 从YOLOv5到RKNN:零冲突转换YOLOv5模型至RK3588 NPU全指南
  • Orange的运维学习日记--47.Ansible进阶之异步处理
  • 力扣hot100:三数之和(排序 + 双指针法)(15)
  • OpenSSL与OpenSSH的关系