bzoj1503郁闷的出(cheng)纳(xu)员
好痛苦,,,WA了不知道多少遍
错的服了,,,
如果某员工的初始工资低于工资下界,他将立刻离开公司
我也不知道是我语文有问题还是题目有毒,反正这个东西好像不应该算在离开公司的总人数的答案里。。。
让我一个人静静。。。。
#include <cstdio>
using namespace std;
int son[][],father[],size[],val[],cnt[],n,i,now,min,x,y,rt,top,ans,m;
char ch[];
void newnode(int &x,int fa,int data){
x=++top;
father[x]=fa;
val[x]=data;
size[top]=;
son[x][]=son[x][]=;
}
void rot(int x,int k){
int y=father[x];
son[y][!k]=son[x][k];
father[son[x][k]]=y;
father[x]=father[y];
son[father[y]][son[father[y]][]==y]=x;
son[x][k]=y;
father[y]=x;
size[x]=size[y];
size[y]=size[son[y][]]+size[son[y][]]+;
}
void rots(int x,int g){
while((y=father[x])!=g){
if(father[father[x]]==g) rot(x,son[father[x]][] == x);
else
{
int y=father[x],z=father[y],f=(son[z][]==y);
if(son[y][f]==x)rot(x,!f);else rot(y,f);
rot(x,f);
}
}
if(!g) rt=x;
}
void ins(int a){
int x=rt;
if (!rt){
rt=++top;val[rt]=a;
son[rt][]=son[rt][]=;
size[rt]=;
}
else{
while(son[x][val[x]<a]) {size[x]++;x=son[x][val[x]<a];}
size[x]++;
newnode(son[x][val[x]<a],x,a);
rots(son[x][val[x]<a],);
}
}
void del(int a,int x,int fa){
if (!x)return;
if (val[x]<a){
if (x==rt) rt=son[x][];
father[son[x][]]=fa;
son[fa][x==son[fa][]]=son[x][];
del(a,son[x][],fa);
now+=size[son[x][]]+;ans+=size[son[x][]]+;
}else {del(a,son[x][],x);}
size[x]=size[x]-now;
}
int find(int k,int x){
if(k<=size[son[x][]])return find(k,son[x][]);
if(k==size[son[x][]]+)return val[x]-min+m;
return find(k-size[son[x][]]-,son[x][]);
}
int main(){
scanf("%d%d",&n,&m);
for (i=;i<=n;i++){
scanf("%s%d",&ch,&x);
if (ch[]=='I')if (x>=m)ins(x-m+min);
if (ch[]=='A')min-=x;
if (ch[]=='S'){min+=x;now=;del(min,rt,);}
if (ch[]=='F')if (x>size[rt]) printf("-1\n");else printf("%d\n",find(size[rt]-x+,rt));
}
printf("%d\n",ans);
}
被卡题意的感觉爽翻了。。。
bzoj1503郁闷的出(cheng)纳(xu)员的更多相关文章
- [No000033]码农网-如何锻炼出最牛程序员的编码套路
最近,我大量阅读了Steve Yegge的文章.其中有一篇叫"Practicing Programming"(练习编程),写成于2005年,读后令我惊讶不已: 与你所相信的恰恰相反 ...
- bzoj1503 郁闷的出纳员
Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的 工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经 ...
- [BZOJ1503]郁闷的出纳员(Splay)
Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常 ...
- BZOJ1503——郁闷的出纳员
1.题目大意:一道treap题,支持插入,询问第K大,还有全体修改+上一个值,如果某个点值小于x,那么就删除这个点 插入100000次,询问100000次,修改100次..最后输出删了多少个点 2.分 ...
- bzoj1503 郁闷的出纳员 splay版
自己yy的写法 可能有点奇怪吧 详情看代码 还是蛮短的 #include<cstdio> #include<cstring> #include<algorithm> ...
- bzoj1503 郁闷的出纳员(平衡树,思维)
题目大意: 现在有n个操作和一个最低限度m \(I\)命令\(I\ k\)新建一个工资档案,初始工资为k. \(A\)命令$A\ k $把每位员工的工资加上k \(S\)命令$S\ k $把每位员工的 ...
- C++程序员如何转Java
C++程序员如何转Java 忙里偷闲,到了这个时间终于得空写一篇早想写的文章.其实本文的标题有些不太准确,C++程序员写Java代码不是说就非得转行写Java,抛弃C++,而只是多了一个选择而已.两 ...
- 关于CPU Cache -- 程序员需要知道的那些事
本文将介绍一些作为程序猿或者IT从业者应该知道的CPU Cache相关的知识.本章从"为什么会有CPU Cache","CPU Cache的大致设计架构",&q ...
- 《Hey程序员 你适合加入创业公司吗?》再补充
笔者经过多年的走访发现,不是所有优秀的程序员都能在创业公司如鱼得水.根据笔者的经验,具备下面几点优秀品质的程序员会更容易适应创业公司的环境. 1.娴熟的调试技巧可以说,程序员的大部分时间都花在调试程序 ...
随机推荐
- 耿丹CS16-2班第六次作业汇总
Deadline: 2016-11-13 11:59 作业内容 第六次作业总结 00.本次题目分值最高为**6分/题 × 7题 + 5分/篇 × 1篇 = 47分**,其中有新解法者每题加原创分**2 ...
- CSS中不定宽块状元素的水平居中显示
CSS中不定宽块状元素的水平居中显示 慕课网上的HTML/CSS教程 http://www.imooc.com/view/9 其中有三种方法 第一种是加入table标签 任务是实现div元素的水平居中 ...
- flex实验总结
1.父元素 .box{ display:flex; flex-direction: column;//铺满垂直排列 flex-direction: column-reverse;//铺满垂直反向排列 ...
- linux回退到上次访问目录
cd / cd .. 回到上级目录 cd - 回到上次访问目录
- EndNote(一)之基本介绍
作为一个经常看文献的人,发现看了很多文献,但是之后需要再找某一篇文献的时候,却无法找到文献在哪里了.混乱的文献管理方式,浪费了很多时间在翻阅自己已经看过的文献之中.这是一件很头痛的事情,才想起借助软件 ...
- ArcGIS 10.1 BUG记录
声明:笔者使用ARCGIS 10.1 XXX版,YYY版可能没有此处描写的问题 1. 关于注册数据库 发布启用FA的服务,需要为数据库进行ArcGIS Server注册,若通过ArcMap执行注册,会 ...
- spring+redis 集群下的操作
文章就是记录一下工作当中的用到的点,与测试方法以备用,会不断更新. 配置文件spring-redis.xml: <?xml version="1.0" encoding=&q ...
- j嵌入式f_os之定时管理
/* * jf_timer.h * * Created on: Aug 20, 2016 * Author: lort */ #ifndef JF_OS_JF_TIMER_H_ #define JF_ ...
- css初始化代码
最近老有新项目开发,一直在找存留的CSS初始化代码,索性放到这里备份下, @charset "utf-8"; /* -------------------------------- ...
- C++根据图片url下载图片
需要使用到URLDownloadToFile()函数,该函数在头文件<urlmon.h>中声明. URLDownloadToFile()函数的定义如下: HRESULT URLDownlo ...