Dynamic Rankings
板子题
用的整体二分
唯一要注意的是别总手误打错变量
最近总犯这样sb错误,我佛了
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+7;
const int inf=0x3f3f3f3f;
struct node{
int op,x,y,z;
}q[3*N],lq[3*N],rq[3*N];
int n,m,t,a[N],c[N],ans[N],num;
void change(int x,int y){
while(x<=n){
c[x]+=y;
x+=x&-x;
}
}
int ask(int x){
int y=0;
while(x){
y+=c[x];
x-=x&-x;
}
return y;
}
void solve(int l,int r,int st,int ed){
if(st>ed)return;
if(l==r){
for(int i=st;i<=ed;i++)
if(q[i].op>0)ans[q[i].op]=l;
return;
}
int mid=(l+r)>>1;
int lt=0,rt=0;
for(int i=st;i<=ed;i++){
if(q[i].op<1){
if(q[i].z<=mid)change(q[i].x,q[i].y),lq[++lt]=q[i];
else rq[++rt]=q[i];
}
else {
int cnt=ask(q[i].y)-ask(q[i].x-1);
if(cnt>=q[i].z)lq[++lt]=q[i];
else q[i].z-=cnt,rq[++rt]=q[i];
}
}
for(int i=ed;i>=st;--i){
if(q[i].op<1&&q[i].z<=mid)change(q[i].x,-q[i].y);
}
for(int i=1;i<=lt;i++)q[st+i-1]=lq[i];
for(int i=1;i<=rt;i++)q[st+lt+i-1]=rq[i];
solve(l,mid,st,st+lt-1);
solve(mid+1,r,st+lt,ed);
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
q[++t].op=0;
q[t].x=i;
q[t].z=a[i];
q[t].y=1;
}
for(int i=1;i<=m;i++){
char ch[2];
int x,y;
scanf("%s",ch);
if(ch[0]=='C'){
scanf("%d%d",&x,&y);
q[++t].op=-1;
q[t].x=x;
q[t].z=a[x];
q[t].y=-1;
q[++t].op=0;
q[t].x=x;
q[t].z=y;
q[t].y=1;
a[x]=y;
}
else {
scanf("%d%d%d",&q[t+1].x,&q[t+1].y,&q[t+1].z);
q[++t].op=++num;
}
}
solve(-10,10,1,t);
for(int i=1;i<=num;i++) printf("%d\n",ans[i]);
return 0;
}
Dynamic Rankings的更多相关文章
- BZOJ 1901: Zju2112 Dynamic Rankings[带修改的主席树]【学习笔记】
1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 7143 Solved: 2968[Su ...
- [bzoj1901][zoj2112][Dynamic Rankings] (整体二分+树状数组 or 动态开点线段树 or 主席树)
Dynamic Rankings Time Limit: 10 Seconds Memory Limit: 32768 KB The Company Dynamic Rankings has ...
- [BZOJ1901]Zju2112 Dynamic Rankings
[BZOJ1901]Zju2112 Dynamic Rankings 试题描述 给定一个含有n个数的序列a[1],a[2],a[3]--a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i ...
- ZOJ 2112 Dynamic Rankings(动态区间第 k 大+块状链表)
题目大意 给定一个数列,编号从 1 到 n,现在有 m 个操作,操作分两类: 1. 修改数列中某个位置的数的值为 val 2. 询问 [L, R] 这个区间中第 k 大的是多少 n<=50,00 ...
- BZOJ-1901 Zju2112 Dynamic Rankings 函数式线段树 套 树状数组+离线处理
1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec Memory Limit: 128 MB Submit: 6058 Solved: 2521 [Su ...
- ZOJ 2112 Dynamic Rankings(主席树の动态kth)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2112 The Company Dynamic Rankings ...
- zoj 2112 Dynamic Rankings 动态第k大 线段树套Treap
Dynamic Rankings Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.zju.edu.cn/onlinejudge/show ...
- Bzoj 1901: Zju2112 Dynamic Rankings 树套树,线段树,平衡树,Treap
1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 6471 Solved: 2697[Su ...
- Bzoj 1901: Zju2112 Dynamic Rankings 主席树,可持久,树状数组,离散化
1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 6321 Solved: 2628[Su ...
- 【BZOJ-1901】Dynamic Rankings 带修主席树
1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 7292 Solved: 3038[Su ...
随机推荐
- 测试报告_HTMLTestRunner.py
(1)模板1下载路径: 链接:https://pan.baidu.com/s/1SydXpWwQd5vDpGlzzhXLfA提取码:3ifp (2)模板二下载路径: 链接:https://pan.ba ...
- 数据库【redis】基本命令
redis常用命令大全 1.基于内存的key-value数据库 2.基于c语言编写的,可以支持多种语言的api //set每秒11万次,取get 81000次 3.支持数据持久化 4.value可 ...
- python学习笔记3_抽象
这一步的学习四个知识点,如何将语句组织成函数,参数,作用域(scope),和递归 一.函数 1.抽象和结构 抽象可以节省很多的工作量,实际上它的作用更大,它是使得计算机程序让人读懂的关键(这也是最基本 ...
- python学习——读取染色体长度(二、向前一步:通过染色体序列获得长度信息)
# 读取fasta # 解析每条序列的长度 chr1_seq = 'ATATATATAT' chr2_seq = 'ATATATATATCGCGCGCGCG' chr3_seq = 'ATATATAT ...
- nginx部署静态页面
1.创建文件存放的目录: 2.vim nginx.conf 找到这个文件然后进入编辑模式 注:进入到文件后:点击a:可以编辑文件, server_name 127.0.0.1; 写上ip或 ...
- Git操作记录
记录一些用过的操作 增加远程推送分支 git remote add orgin http://xxxxx.git 直接新建本地分支,将远程分支提取出来. git checkout -t origin/ ...
- 简单解析nestJS目录
使用Nest CLI设置新项目非常简单 .只需确保 安装了npm,然后在OS终端中使用以下命令: $ npm i -g @nestjs/cli $ nest new project-name $ cd ...
- 低版本Flume兼容高版本elasticsearch
Flume更新比较慢,而elasticsearch更新非常快所以当涉及更换elasticsearch版本时会出现不兼容问题. apache-flume-1.6.0+elasticsearch1.5.1 ...
- mysql 小结
Mariadb proxy maxscale01.test.com maxscale02.test.com Mariadb Galera Cluster db01.test.com db02.test ...
- codeforces8A
Train and Peter CodeForces - 8A Peter likes to travel by train. He likes it so much that on the trai ...