题面

第一道自己脑补出来的整体二分,这样我就不用去打那个树桩数组套主席树了

开心

主要是把各个操作分开

op==1 则为加操作

op==2 则为减操作

op==3则为区间查询操作

之后直接将询问的次数和值域二分求解即可

#include<bits/stdc++.h>
#define lowbit(x) x&(-x)
using namespace std;
const int N=1e5+7;
const int INF=1e9+7;
int m,n,T;
int ans[N],num[N];
struct node
{int x,y,id,op;int k;
} q[N],q1[N],q2[N];
struct Tree
{int tree[N<<2];void add(int x,int val){for (;x<=n;x+=lowbit(x)) tree[x]+=val;}int query(int x){int ans=0;for (;x;x-=lowbit(x)) ans+=tree[x];return ans;}
} G;int cur[N];
void solve(int from,int to,int l,int r)
{if (from>to||l>r) return;if (l==r){for (int i=from;i<=to;i++)if (q[i].op==3) ans[q[i].id]=l;return;}int mid=(l+r)>>1;for (int i=from;i<=to;i++){if (q[i].k<=mid){    if (q[i].op==2) G.add(q[i].x,-1);if (q[i].op==1) G.add(q[i].x,1);}if (q[i].op==3) cur[i]=G.query(q[i].y)-G.query(q[i].x-1);}for (int i=from;i<=to;i++)if (q[i].k<=mid){if (q[i].op==2) G.add(q[i].x,1);if (q[i].op==1) G.add(q[i].x,-1);}int t1=0,t2=0;for (int i=from;i<=to;i++)if (q[i].op==1||q[i].op==2){if (q[i].k<=mid) q1[t1++]=q[i];else q2[t2++]=q[i];}else {if (cur[i]>=q[i].k) q1[t1++]=q[i];else q[i].k-=cur[i],q2[t2++]=q[i];}for (int i=0;i<t1;i++) q[from+i]=q1[i];for (int i=0;i<t2;i++) q[from+t1+i]=q2[i];solve(from,from+t1-1,l,mid);solve(from+t1,to,mid+1,r);
}
int main()
{freopen("dynrank.in","r",stdin);freopen("dynrank.out","w",stdout);scanf("%d",&T);while (T--){scanf("%d%d",&n,&m);for (int i=1;i<=n;i++){int x;scanf("%d",&x);q[i].op=1;q[i].x=i;q[i].k=x;num[i]=x;}int tot=0;for (int i=1;i<=m;i++){char s[5];int x,y,k;scanf("%s",s);scanf("%d%d",&x,&y);if (s[0]=='Q') {scanf("%d",&k);q[++n].op=3;q[n].x=x;q[n].y=y;q[n].id=++tot;q[n].k=k;}if (s[0]=='C'){q[++n].op=2;q[n].x=x;q[n].k=num[x];q[++n].op=1;q[n].x=x;q[n].k=y;num[x]=y;}}solve(1,n,0,INF);for (int i=1;i<=tot;i++) printf("%d\n",ans[i]);}return 0;
}

转载于:https://www.cnblogs.com/Hale522520/p/10861732.html

动态排名系统(整体二分)相关推荐

  1. 基于 HTML5 WebGL 的故宫人流量动态监控系统

    前言 在当代社会,故宫已经成为一个具有多元意义的文化符号,在历史.艺术.文化等不同领域发挥着重要的作用,在国际上也成为能够代表中国文化甚至中国形象的国际符号.近几年故宫的观众接待量逐年递增,年接待量已 ...

  2. P2617 Dynamic Rankings 动态区间第K大【树套树】或【整体二分】

    传送门 动态区间第KKK大问题,单点修改(这里是第kkk小,即是从小到大第kkk个) 这里还有个区间修改,有点类似的 P3332 [ZJOI2013]K大数查询 分析 树套树 树套树,就是用一种树形结 ...

  3. 据我所知,这是第一个完整实现运动分割、动态目标追踪等的「开源」动态SLAM系统!...

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 今天给大家分享一篇最新文章,VDO-SLAM :一种动态目标感知的视觉SLAM系统,原文名称 VDO- ...

  4. python动态排名可视化_动态排名可视化 | 带你领略编程语言20年风云变化

    原标题:动态排名可视化 | 带你领略编程语言20年风云变化 作者 | 周萝卜 来源 | 萝卜大杂烩 2019已经过去,回看编程语言20年真是风云变化! 从 TIOBE 榜(热门榜)上来看,Java.C ...

  5. java动态网站框架_大型网站动态应用系统架构

    动态应用,是相对于网站静态内容而言,是指以c/c++.php.Java.perl..net等服务器端语言开发的网络应用软件,比如论坛.网络相册.交友.BLOG等常见应用.动态应用系统通常与数据库系统. ...

  6. P1527 [国家集训队]矩阵乘法 整体二分 + 二维树状数组

    传送门 题意: 思路: 算是个整体二分的板子啦,不过这个是二维的矩阵,我们只需要把一位树状数组改成二维的,让后动态维护单点加,区间查询前缀和即可. //#pragma GCC optimize(2) ...

  7. SLAM+语音机器人DIY系列:(二)ROS入门——2.ROS系统整体架构

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人"miiboo"中的大部分程序也采用ROS进行开发,所 ...

  8. 大型动态应用系统平台系统架构?这些大家并不陌生

    大型动态应用系统平台系统架构[多图] 动态应用,是相对于网站静态内容而言,是指以c/c++.php.Java.perl..net等服务器端语言开发的网络应用软件,比如论坛.网络相册.交友.BLOG等常 ...

  9. 【BZOJ1146】网络管理,整体二分

    传送门 好久没更新题解了,感觉这道题思路不难,但做法挺多的,我大概能想到四种做法,如果有神犇还有其他好方法请在下方评论 1.树链剖分,每条重链维护一颗平衡树 修改直接做logn\log n 查询时二分 ...

最新文章

  1. Python爬取4399好wan的小游戏!
  2. Python 来分析,堪比“唐探系列”!B站9.5分好评如潮!
  3. TLS实现代码段加密
  4. 计算机网络之数据链路层思维导图总结
  5. 5分钟了解TypeScript
  6. MySQL 隐式转换 字符串和整型说明
  7. Xcode常见的编译、运行等错误的解决
  8. mybatis-01
  9. Cloud Native的设计哲学理念,kubernetes云生态操作系统
  10. zookeeper在windows下设置为服务启动(不需双击zkServer.cmd)
  11. goto 语句和标号
  12. 物联网学习之旅:微信小程序控制STM32(二)--ESP8266连接mqtt服务端
  13. CRISPR技术有效的防止脱靶现象方法
  14. Bos物流项目之在线下单流程图
  15. 【CodingNoBorder - 04】无际软工队 - 求职岛:技术规格说明书
  16. 英语常用缩写(Abbreviations) ---一般常用缩写
  17. 用格里高利公式求给定精度的PI值
  18. 软件架构设计分层模型和构图思考
  19. 计算机java用什么收题_JAVA是一种______。 A.计算机语言 B.计算机没备 C.数据库 D.应用软件...
  20. 关于vue小插件:ly-tab的解释

热门文章

  1. 一对一培训之视频免费分享-2017-12-09-第 03 阶段-准备-基础-架构-课件
  2. ASP.Net数据库如何存取图片
  3. 使用NUget发布自己的dll(转)
  4. iOS - UIRefreshControl 刷新数据
  5. 中文分词——正向最大匹配法
  6. 二进制 正数 负数 源码反码补码
  7. gdal1.6linux编译,VS2015下编译64位GDAL总结
  8. cmake 在安装mysql_cmake安装mysql
  9. airtest远程连接手机_远程连接路由器图文教程,查询无线wifi连接手机dhcp设备名列表...
  10. 【可观测之ELK】elk+logback+redis 搭建日志平台