博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj1503 郁闷的出纳员 splay版
阅读量:6097 次
发布时间:2019-06-20

本文共 1886 字,大约阅读时间需要 6 分钟。

自己yy的写法 可能有点奇怪吧 详情看代码 还是蛮短的
#include
#include
#include
using namespace std;const int M=100055,inf=0x3f3f3f3f;int read(){ int ans=0,f=1,c=getchar(); while(c<'0'||c>'9'){
if(c=='-') f=-1; c=getchar();} while(c>='0'&&c<='9'){ans=ans*10+(c-'0'); c=getchar();} return ans*f;}int t,root,sum,n,mn,delta,now,leave;int c[M][2],v[M],size[M],fa[M];void up(int k){size[k]=size[c[k][0]]+size[c[k][1]]+1;}void rotate(int x,int& k){ int y=fa[x],z=fa[y],l=0,r=1; if(c[y][1]==x) l=1,r=0; if(y==k) k=x; else{
if(c[z][0]==y) c[z][0]=x; else c[z][1]=x;} fa[y]=x; fa[x]=z; fa[c[x][r]]=y; c[y][l]=c[x][r]; c[x][r]=y; up(y); up(x);}void splay(int x,int& k){ while(x!=k){ int y=fa[x],z=fa[y]; if(y!=k){ if(c[z][0]==y^c[y][0]==x) rotate(y,k); else rotate(x,k); } rotate(x,k); }}void insert(int &k,int w,int last){ if(!k){k=++sum; now=k; fa[k]=last; size[k]=1; v[k]=w; return ;} if(w
=rank) return find(l,rank); else return find(r,rank-size[l]-1);}int main(){ n=read(); mn=read(); char ch[15]; int k,s; while(n--){ scanf("%s",ch); k=read(); if(ch[0]=='I'&&k>=mn) insert(root,k-delta,0),splay(now,root); if(ch[0]=='A') delta+=k; if(ch[0]=='S') { delta-=k,t=0,push_before(root,mn-delta); if(!t) continue; splay(t,root); int l=c[t][0]; leave+=size[l]+1; root=c[t][1]; fa[root]=0; } if(ch[0]=='F'){ if(k>size[root]) printf("-1\n"); else s=find(root,size[root]-k+1),splay(s,root),printf("%d\n",v[root]+delta); } //printf("%d ",root); printf("%d [%d %d %d]\n",v[root],size[root],c[root][0],c[root][1]); } printf("%d\n",leave); return 0;}
View Code

转载于:https://www.cnblogs.com/lyzuikeai/p/6922425.html

你可能感兴趣的文章
特殊字体引用
查看>>
owlcar 用法心得 自定义导航
查看>>
数据结构 学习笔记03——栈与队列
查看>>
DB2 OLAP函数的使用(转)
查看>>
数学之美系列二十 -- 自然语言处理的教父 马库斯
查看>>
Android实现自定义位置无标题Dialog
查看>>
面试总结
查看>>
Chrome浏览器播放HTML5音频没声音的解决方案
查看>>
easyui datagrid 行编辑功能
查看>>
类,对象与实例变量
查看>>
HDU 2818 (矢量并查集)
查看>>
【转】php字符串加密解密
查看>>
22. linux 常用命令
查看>>
ASP.Net 使用GridView模板删除一行的用法
查看>>
(十六)字段表集合
查看>>
JPGraph
查看>>
实验二 Java面向对象程序设计
查看>>
------__________________________9余数定理-__________ 1163______________
查看>>
webapp返回上一页 处理
查看>>
新安装的WAMP中phpmyadmin的密码问题
查看>>