[BZOJ]1503: [NOI2004]郁闷的出纳员
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]郁闷的出纳员相关推荐
- BZOJ 1503: [NOI2004]郁闷的出纳员 Treap
Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常 ...
- BZOJ 1503 [NOI2004] 郁闷的出纳员 treap
题意: 链接 方法: treap 解析: 这是本蒟蒻的第二道treap题,第二遍写的时候update,左旋右旋,插入函数都可以大概写出来了(还是得练啊),然而del 函数却被虐了,自己也想到用个什么 ...
- [BZOJ1503][NOI2004]郁闷的出纳员 无旋Treap
1503: [NOI2004]郁闷的出纳员 Time Limit: 5 Sec Memory Limit: 64 MB Description OIER公司是一家大型专业化软件公司,有着数以万计的员 ...
- bzoj1503: [NOI2004]郁闷的出纳员
地址:http://www.lydsy.com/JudgeOnline/problem.php?id=1503 题目: 1503: [NOI2004]郁闷的出纳员 Time Limit: 5 Sec ...
- 洛谷P1486 [NOI2004] 郁闷的出纳员 题解
P1486 [NOI2004] 郁闷的出纳员 题目链接:P1486 [NOI2004] 郁闷的出纳员 题意:维护一个数据结构,支持 插入一个大小为 kkk 的值,小于下界时不插入 所有元素加上 kk ...
- BZOJ1503:[NOI2004]郁闷的出纳员——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=1503 (题面复制的洛谷的,因为洛谷好看) 题目描述 OIER公司是一家大型专业化软件公司,有着数以万 ...
- BZOJ1503 [NOI2004]郁闷的出纳员
AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=1503 [我的感受] 这题郁闷了很久,因为discuss里讨论的问题和我都不是一个问题... ...
- [NOI2004]郁闷的出纳员
Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的 工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经 ...
- BZOJ1503[NOI2004]郁闷的出纳员——treap
OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资.如果他心 ...
最新文章
- non-local神经网络:通过非局部操作解决深度神经网络核心问题
- easyui tab
- java接口常用_java的常用接口
- 模电这么学,谁还会说不懂晶体管?
- Python的魔法方法 .
- 真香定律!Android动态换肤实现原理解析,吐血整理
- xgboost实例_XGBoost超详细推导,终于有人讲明白了!
- java 对象 转换 工具类_Java中excel与对象的互相转换的通用工具类编写与使用(基于apache-poi-ooxml)...
- cocos2d-x 截取屏幕可见区域
- 微软披露首个由中国发现的蠕虫级漏洞 奇安信代码安全实验室获致谢
- 学生管理系统IPO图_图书管理系统开发背景和意义
- ALSA声卡驱动二之声卡的创建
- 如何从一个大规模的文本中筛选出符合条件的记录
- CC00307.CloudKubernetes——|KuberNetes运维.V27|——|监控.v04|PromQL查询_运算符|
- 2018 dota2 战队十杀分析
- 65款免费精美护士医生求职简历word模板,四页求职简历模板,含自荐信
- 爬虫实践---Scrapy-豆瓣电影影评深度爬取
- 银河麒麟系统安全机制-KYSEC
- cnn 预测过程代码_【交通+AI】使用CNN+LSTM实时出租车出行预测(上)
- 注意力机制(Attention)最新综述论文及相关源码