BZOJ-1563-郁闷的出纳员(权值线段树)
偏移量要考虑清楚。
#include <bits/stdc++.h>
using namespace std;
const int N=4e5+10;
const int BASE=1e5+1;
const int RIGHT=3e5+5e4;
int segtree[N<<2],lazy[N<<2];
void pushdown(int rt)
{
if (lazy[rt]) {
lazy[rt<<1]=lazy[rt<<1|1]=1;
segtree[rt<<1]=segtree[rt<<1|1]=0;
lazy[rt]=0;
}
}
void Update(int val,int l,int r,int rt)
{
if (l==r) {
segtree[rt]++;
return ;
}
pushdown(rt);
int mid=(r+l)>>1;
if (val<=mid) {
Update(val,l,mid,rt<<1);
}
else {
Update(val,mid+1,r,rt<<1|1);
}
segtree[rt]=segtree[rt<<1]+segtree[rt<<1|1];
}
void Delete(int L,int R,int l,int r,int rt)
{
if (L<=l&&r<=R) {
lazy[rt]=1;
segtree[rt]=0;
return ;
}
pushdown(rt);
int mid=(l+r)>>1;
if (L<=mid) {
Delete(L,R,l,mid,rt<<1);
}
if (mid<R) {
Delete(L,R,mid+1,r,rt<<1|1);
}
segtree[rt]=segtree[rt<<1]+segtree[rt<<1|1];
}
int Query(int val,int l,int r,int rt)
{
if (l==r) {
return l;
}
pushdown(rt);
int mid=(l+r)>>1;
if (segtree[rt<<1]>=val) {
return Query(val,l,mid,rt<<1);
}
else {
return Query(val-segtree[rt<<1],mid+1,r,rt<<1|1);
}
}
int main()
{
char op[10];
int n,min_sal,tot=0,num,offset=0;
scanf("%d%d",&n,&min_sal);
for (int i=0;i<n;i++) {
scanf("%s%d",op,&num);
if (!strcmp(op,"I")) {
if (num>=min_sal) {
tot++;
Update(num+BASE+offset,1,RIGHT,1);
}
}
else if (!strcmp(op,"A")) {
offset-=num;
}
else if (!strcmp(op,"S")) {
offset+=num;
Delete(1,BASE+min_sal-1+offset,1,RIGHT,1);
}
else {
Delete(1,BASE+min_sal-1+offset,1,RIGHT,1);
if (num>segtree[1]) {
puts("-1");
}
else {
printf("%d\n",Query(segtree[1]-num+1,1,RIGHT,1)-BASE-offset);
}
}
}
printf("%d\n",tot-segtree[1]);
return 0;
}
BZOJ-1563-郁闷的出纳员(权值线段树)的更多相关文章
- bzoj 1503: [NOI2004]郁闷的出纳员 -- 权值线段树
1503: [NOI2004]郁闷的出纳员 Time Limit: 5 Sec Memory Limit: 64 MB Description OIER公司是一家大型专业化软件公司,有着数以万计的员 ...
- P1486 [NOI2004]郁闷的出纳员[权值线段树]
权值线段树. 我们只用维护一个人是否存在,以及他当前排名,而不关心工资的具体值,这个可以直接算. 不难发现,如果不考虑新的员工,所有员工的工资的差值是不变的. 而加进来一个新的员工时,其工资为\(x\ ...
- bzoj 4627: [BeiJing2016]回转寿司 -- 权值线段树
4627: [BeiJing2016]回转寿司 Time Limit: 10 Sec Memory Limit: 256 MB Description 酷爱日料的小Z经常光顾学校东门外的回转寿司店. ...
- BZOJ_1503_[NOI2004]郁闷的出纳员_权值线段树
BZOJ_1503_[NOI2004]郁闷的出纳员_权值线段树 Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的 工资. ...
- bzoj 2733: [HNOI2012]永无乡【并查集+权值线段树】
bzoj上数组开大会T-- 本来想用set瞎搞的,想了想发现不行 总之就是并查集,每个点开一个动态开点的权值线段树,然后合并的时候把值并在根上,询问的时候找出在根的线段树里找出k小值,看看这个值属于哪 ...
- [BZOJ 3295] [luogu 3157] [CQOI2011]动态逆序对(树状数组套权值线段树)
[BZOJ 3295] [luogu 3157] [CQOI2011] 动态逆序对 (树状数组套权值线段树) 题面 给出一个长度为n的排列,每次操作删除一个数,求每次操作前排列逆序对的个数 分析 每次 ...
- [BZOJ 3110] [luogu 3332] [ZJOI 2013]k大数查询(权值线段树套线段树)
[BZOJ 3110] [luogu 3332] [ZJOI 2013]k大数查询(权值线段树套线段树) 题面 原题面有点歧义,不过从样例可以看出来真正的意思 有n个位置,每个位置可以看做一个集合. ...
- BZOJ 3110 ZJOI 2013 K大数查询 树套树(权值线段树套区间线段树)
题目大意:有一些位置.这些位置上能够放若干个数字. 如今有两种操作. 1.在区间l到r上加入一个数字x 2.求出l到r上的第k大的数字是什么 思路:这样的题一看就是树套树,关键是怎么套,怎么写.(话说 ...
- BZOJ 4605 崂山白花蛇草水(权值线段树+KD树)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4605 [题目大意] 操作 1 x y k 表示在点(x,y)上放置k个物品, 操作 2 ...
- BZOJ 4777 Usaco2017 Open Switch Grass Kruskal+替罪羊树+权值线段树
这道题首先可以看出答案一定是一条边,而且答案一定在最小生成树上,那么我们就可以在这个最小生成树上维护他与异色儿子的边最小值,所以我们就可以已通过Kruskal和一棵平衡树来解决,时间复杂度是O(n*l ...
随机推荐
- python:复制文件及文件夹
#!/usr/bin/python# -*- coding:utf-8 -*- import shutil #shutil.copy(文件1,文件2)#将源内容复制到目标文件中.d.txt不存在则创建 ...
- 【Python】文本进度条
1.0代码: import time#引入time库 scale=10#文本进度条宽度 print("------执行开始------") for i in range(scale ...
- [AHOI2013] 差异 - 后缀数组,单调栈
[AHOI2013] 差异 Description 求 \(\sum {len(T_i) + len(T_j) - 2 lcp(T_i,T_j)}\) 的值 其中 \(T_i (i = 1,2,... ...
- linux做免密登录,成功分发公钥后登录主机依旧需要输入密码的问题解决
问题描述 在主机A上用ssh-keygen生成密钥对后,用ssh-copy-id命令将公钥成功copy到主机B上后,测试从A免密登录B,但是依旧需要输入主机B的密码后才能登录. 出现此错误的原因 如果 ...
- elementui el-table根据分页显示表格序号
每页显示的序号都是一样的: <el-table :data="tableData" highlight-current-row @current-change="h ...
- css 动画开关按钮
<style> input[type="checkbox"] { display: none; } input[type="checkbox"] + ...
- STM32F103之ADC学习记录
1.问题 1)10位ADC的误差是多少? 首先要分清分辨率与精度的区别. 10cm的尺子,有100个等分刻度,则该尺子的分辨率为1mm. 但不能说这把尺子的精度是1mm. 在冬天,尺子会热胀冷缩,依然 ...
- FastDFS :java.lang.Exception: getStoreStorage fail, errno code: 28
FastDFS 服务正常,突然报错:java.lang.Exception: getStoreStorage fail, errno code: 28 答:错误代码28表示 No space left ...
- 整合SSM2
SSM框架的搭建 注意: 1.SpringMVC和Spring 不需要什么特殊的配置就可以结合 2.MyBatis和Spring 1)需要引入额外的jar包:m ...
- Apache Kafka(七)- Kafka ElasticSearch Comsumer
Kafka ElasticSearch Consumer 对于Kafka Consumer,我们会写一个例子用于消费Kafka 数据传输到ElasticSearch. 1. 构造ElasticSear ...