SB平衡树

#include<cstdio>
#define MN 100000
#define L(x) c[x][0]
#define R(x) c[x][1]
#define rtf MN+1
#define rt L(rtf)
#define INF 0x7FFFFFFF
int fa[MN+5],c[MN+5][2],s[MN+5],p[MN+5],mk[MN+5],z[MN+5],tn;
inline void mark(int x,int ad){z[x]+=ad;mk[x]+=ad;}
inline void down(int x){if(mk[x])mark(L(x),mk[x]),mark(R(x),mk[x]),mk[x]=0;}
inline void up(int x){s[x]=s[L(x)]+s[R(x)]+1;}
inline int ran()
{static int x=23333;return x^=x<<13,x^=x>>17,x^=x<<5;
}
void rotate(int x)
{int f=fa[x],ff=fa[f],l=R(f)==x,r=l^1;fa[f]=x;fa[x]=ff;fa[c[x][r]]=f;c[ff][R(ff)==f]=x;c[f][l]=c[x][r];c[x][r]=f;up(f);up(x);
}
void ins(int f,int t,int x)
{while(c[f][t])++s[f=c[f][t]],down(f),t=x>z[f];fa[c[f][t]=++tn]=f;z[tn]=x;p[tn]=ran();s[tn]=1;while(p[tn]>p[fa[tn]])rotate(tn);
}
int find(int x,int k)
{while(down(x),k)if(k<=s[L(x)])x=L(x);else if(k-=s[L(x)]+1)x=R(x);return x;
}
void del(int x)
{fa[c[fa[x]][0]=R(x)]=fa[x];while(x=fa[x])up(x);
}
int main()
{int n,m,x,cnt=0;char t[MN+5];p[rtf]=INF;scanf("%d%d",&n,&m);while(n--){scanf("%s%d",t,&x);if(t[0]=='I')if(x>=m)ins(rtf,0,x);if(t[0]=='A')mark(rt,x);if(t[0]=='S'){mark(rt,-x);while(rt&&z[x=find(rt,1)]<m)del(x),++cnt;}if(t[0]=='F')printf("%d\n",x>s[rt]?-1:z[find(rt,s[rt]-x+1)]);}printf("%d",cnt);
}

转载于:https://www.cnblogs.com/ditoly/p/BZOJ1503.html

[BZOJ]1503: [NOI2004]郁闷的出纳员相关推荐

  1. BZOJ 1503: [NOI2004]郁闷的出纳员 Treap

    Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常 ...

  2. BZOJ 1503 [NOI2004] 郁闷的出纳员 treap

    题意: 链接 方法: treap 解析: 这是本蒟蒻的第二道treap题,第二遍写的时候update,左旋右旋,插入函数都可以大概写出来了(还是得练啊),然而del  函数却被虐了,自己也想到用个什么 ...

  3. [BZOJ1503][NOI2004]郁闷的出纳员 无旋Treap

    1503: [NOI2004]郁闷的出纳员 Time Limit: 5 Sec  Memory Limit: 64 MB Description OIER公司是一家大型专业化软件公司,有着数以万计的员 ...

  4. bzoj1503: [NOI2004]郁闷的出纳员

    地址:http://www.lydsy.com/JudgeOnline/problem.php?id=1503 题目: 1503: [NOI2004]郁闷的出纳员 Time Limit: 5 Sec  ...

  5. 洛谷P1486 [NOI2004] 郁闷的出纳员 题解

    P1486 [NOI2004] 郁闷的出纳员 题目链接:P1486 [NOI2004] 郁闷的出纳员 题意:维护一个数据结构,支持 插入一个大小为 kkk​ 的值,小于下界时不插入 所有元素加上 kk ...

  6. BZOJ1503:[NOI2004]郁闷的出纳员——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=1503 (题面复制的洛谷的,因为洛谷好看) 题目描述 OIER公司是一家大型专业化软件公司,有着数以万 ...

  7. BZOJ1503 [NOI2004]郁闷的出纳员

    AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=1503 [我的感受] 这题郁闷了很久,因为discuss里讨论的问题和我都不是一个问题... ...

  8. [NOI2004]郁闷的出纳员

    Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的 工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经 ...

  9. BZOJ1503[NOI2004]郁闷的出纳员——treap

    OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资.如果他心 ...

最新文章

  1. non-local神经网络:通过非局部操作解决深度神经网络核心问题
  2. easyui tab
  3. java接口常用_java的常用接口
  4. 模电这么学,谁还会说不懂晶体管?
  5. Python的魔法方法 .
  6. 真香定律!Android动态换肤实现原理解析,吐血整理
  7. xgboost实例_XGBoost超详细推导,终于有人讲明白了!
  8. java 对象 转换 工具类_Java中excel与对象的互相转换的通用工具类编写与使用(基于apache-poi-ooxml)...
  9. cocos2d-x 截取屏幕可见区域
  10. 微软披露首个由中国发现的蠕虫级漏洞 奇安信代码安全实验室获致谢
  11. 学生管理系统IPO图_图书管理系统开发背景和意义
  12. ALSA声卡驱动二之声卡的创建
  13. 如何从一个大规模的文本中筛选出符合条件的记录
  14. CC00307.CloudKubernetes——|KuberNetes运维.V27|——|监控.v04|PromQL查询_运算符|
  15. 2018 dota2 战队十杀分析
  16. 65款免费精美护士医生求职简历word模板,四页求职简历模板,含自荐信
  17. 爬虫实践---Scrapy-豆瓣电影影评深度爬取
  18. 银河麒麟系统安全机制-KYSEC
  19. cnn 预测过程代码_【交通+AI】使用CNN+LSTM实时出租车出行预测(上)
  20. 注意力机制(Attention)最新综述论文及相关源码

热门文章

  1. ionic 获取input的值
  2. 软件工程--软件设计
  3. 离职那天!同龄的CTO悄悄私信我,他的年薪是我的10倍
  4. 300 行代码带你搞懂 Java 多线程!
  5. 陆金所 CAT 优化实践
  6. Spring Boot 项目的 API 接口防刷
  7. 坑爹!花费2亿耗时2年,网站没建完Java都写不好,顶级咨询公司埃森哲被告上法庭
  8. binlog二进制文件解析
  9. Java 应用中的日志
  10. 图解Linux系统调用