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

[JSK]动态数列I

[JSK]动态数列I

大意

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

思路

考虑权值线段树。

实际上我们只需要维护一个很大的桶,这个玩意就是权值线段树,我们只需要维护子树内有几个元素,如果是满足右区间大于等于 \(x\),就去右区间找,否则,去左区间找,但是此时找左区间内第 \(x - val_{rc}\) 大的(大的在右子树)。

代码

#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 * 4 + 10;
int val[N], lazy[N], n, m;void pushup(int rt) {val[rt] = val[rt * 2] + val[rt * 2 + 1];
}void update(int rt, int l, int r, int pos, int x) {if (l == r) {val[rt] ++;return;}int mid = (l + r) / 2;if (pos <= mid) {update(rt * 2, l, mid, pos, x);} else {update(rt * 2 + 1, 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(x <= val[rt * 2 + 1]){return query(rt * 2 + 1, mid + 1, r, x);}else {return query(rt * 2, l, mid, x - val[rt * 2 + 1]);}
}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, (int)(1e5 + 5), x, 1);}for (int i = 0; i < m; i++) {cin >> op >> x;if (op == 1) {update(1, 1, (int)(1e5 + 5), x, 1);} else {cout << query(1, 1, (int)(1e5 + 5), x) << endl;}}return 0;
}
http://www.gsyq.cn/news/88978.html

相关文章:

  • 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驱动的跨平台开发新范式
  • GBase 8a数据库多实例部署流程简介
  • YashanDB数据库的多维扩展能力与性能提升路径
  • COMSOL模拟:单场耦合下的注二氧化碳驱替甲烷模型研究
  • GBase数据库护航国家管网SCADA系统四年无中断平稳运行
  • FunASR语音识别模型部署实战:从训练到生产的完整指南
  • DAY 37 GPU训练及类的call方法
  • MATLAB环境下一维时间序列信号的欠定盲源分离方法(基于L1范数最小化算法)
  • Vuetify终极指南:从零构建企业级Vue应用的完整教程
  • 如何快速掌握YOLOv12:实时目标检测的完整实践指南
  • 终极图像量化神器:libimagequant完全指南
  • 调试技巧:从 IDE 调试到生产环境定位问题,提升调试效率的全方位指南 - 指南
  • Python闭包与解释器全解析
  • 矮冬瓜矮砧密植:水肥一体化系统的详细铺设要点
  • 选对远控软件,效率翻倍!2025年十大品牌真实评分大揭秘
  • 2026年河北省职业院校技能大赛(中职组)移动应用与开发赛项竞赛样题