当前位置: 首页 > news >正文

[JSK]动态数列II

[JSK]动态数列II

大意

每次在一段序列的末尾加一个数 \(x\),每次查询序列从大到小排序后的第 \(x\) 个的数。

思路

考虑动态开点的权值线段树,由于不是每一个点都需要用,我们考虑用的时候再给他开出来。

直接在结构体里面存上你该点的左右儿子的编号。

一般来说我们动态开点都是在 pushdown 里面做的,这个题不需要 pushdown,所以直接在 update 里面做了。

代码

#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 * 40 + 10;
const int INF = (1<<30);
struct node {int val, l, r;
} a[N];
int n, m, tot = 1;
void pushup(int rt) {a[rt].val = a[a[rt].l].val + a[a[rt].r].val;
}
void update(int rt, int l, int r, int pos, int x) {if (l == r) {a[rt].val ++;return;}int mid = (l + r) / 2;if (pos <= mid) {if(!a[rt].l){a[rt].l = ++ tot;}update(a[rt].l, l, mid, pos, x);} else {if(!a[rt].r){a[rt].r = ++ tot;}update(a[rt].r, mid + 1, r, pos, x);}pushup(rt);
}
int query(int rt, int l, int r, int x) {if (l == r) return r;int mid = (l + r) / 2;if(a[a[rt].r].val >= x){return query(a[rt].r, mid + 1, r, x);}else{return query(a[rt].l, l, mid, x - a[a[rt].r].val);}
}
int main() {std::ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);int op, x;cin >> n >> m;for (int i = 0; i < n; i++) {cin >> x;update(1, 1, INF, x, 1);}for (int i = 0; i < m; i++) {cin >> op >> x;if (op == 1) {update(1, 1, INF, x, 1);} else {cout << query(1, 1, INF, x) << endl;}}return 0;
}
http://www.gsyq.cn/news/89030.html

相关文章:

  • 搜维尔科技:用新一代Xsens Link遥操作人形机器人:精确动作捕捉,新纪元开启!
  • 功耗网路签核工具大盘点
  • Krita架构解密:开源绘画软件如何实现商业级性能?
  • 19.redis之缓存击穿
  • 一个由错误的拷贝构造方式产生的bug
  • 极市平台 | NeurlPS‘25开源 | 中科院新作AutoSeg3D:在线分割一切3D物体,超越ESAM!
  • 2025安全婴儿面霜测评:华西珐玛领衔,敏宝护理指南 - 资讯焦点
  • 搜维尔科技:Xsens独立项目-面向独立工作室的高端动作捕捉
  • 毕业设计实战:基于SSM+MySQL的药店管理系统设计与实现,从需求到测试轻松通关!
  • 深夜炸场!GPT-5.2发布;Meta被曝用阿里千问优化新模型;马斯克点赞腾讯游戏业务:他们的品味非常好 | 极客头条
  • Python 面向对象核心概念梳理
  • 某游戏大厂的常用面试问题解析:Netty 与 NIO - 指南
  • 【RCE】利用 Python 沙箱绕过实现任意代码执行的完整案例分析
  • 可信数据空间落地生活:医疗提速、出行省心,这些变化你已受益
  • [JSK]动态数列I
  • springboot基于vue的护士资格在线练习和模拟考试系统的设计与实现_m23x6tm9
  • springboot基于vue的档案室管理系统_gmr7teee
  • 深入解析:STM32 几种烧录方式
  • 基于Web的低代码系统的研究与实现中期检查
  • Airflow - AirflowSkipException
  • 如何快速实现离线人脸识别:FaceAISDK完整指南
  • Nextcloud文件压缩下载实用指南:轻松管理云端文件
  • 内网渗透之横向移动持久化远程控制篇——利用ipc、sc、schtasks、AT,远程连接的winrm,wmic的使用和定时任务的创建
  • 基于WEB的多媒体素材管理库的开发与应用任务书
  • 基于web的二手书交易平台设计与实开题报告
  • 爬取某网站的小说名(pyquery)
  • Android高斯模糊终极指南:Blurry库完全解析
  • 计算机毕业设计springboot基于Java的游乐园管理系统设计与实现 基于Spring Boot框架的Java游乐园综合管理系统开发与应用 Java技术驱动的Spring Boot游乐园运营管理系
  • 基于web的二手书交易平台设计与实现
  • RAD Studio 13 Florence:C++、Delphi现代化与AI驱动的跨平台开发新范式