当前位置: 首页 > 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.jsqmd.com/news/78999/

相关文章:

  • Markdown写作常用组件 - Invinc
  • 2025妈妈杯大材料竞赛A题mathorcup大素材:集装箱智能破损检测问题手把手思路代码文章教学大学生数学建模
  • 功耗网路签核工具大盘点
  • Krita架构解密:开源绘画软件如何实现商业级性能?
  • 19.redis之缓存击穿
  • 2025.12.12
  • 极市平台 | NeurlPS‘25开源 | 中科院新作AutoSeg3D:在线分割一切3D物体,超越ESAM!
  • APC001F
  • #题解#洛谷P1120 小木棍#搜索#剪枝
  • 云服务器的核心优势
  • 2025安全婴儿面霜测评:华西珐玛领衔,敏宝护理指南 - 资讯焦点
  • PyCausalSim:基于模拟的因果发现的Python框架
  • 爬youtube视频笔记
  • 使用vscode运行python,解释器为anaconda的虚拟环境,使用pip命令安装库失败解决方案
  • 某游戏大厂的常用面试问题解析:Netty 与 NIO - 指南
  • 软件工程学习日志2025.12.12
  • 云端算力:数字时代的核心引擎与创新基石
  • 家乐事净水器加盟费多少?0加盟费+装修补贴+区域保护,全程扶持解读 - 资讯焦点
  • 病毒学研究的关键工具:重组病毒蛋白的技术解析与应用实践
  • zz深入了解LlamaIndex实现Agent代码和原理
  • 搜维尔科技:Xsens独立项目-面向独立工作室的高端动作捕捉
  • 2025年度活动板房厂家TOP5实力评测:资质口碑场景适配全维度选型指南 - 资讯焦点
  • 解码智能指针
  • 毕业设计实战:基于SSM+MySQL的药店管理系统设计与实现,从需求到测试轻松通关!
  • linux: gdb调试器
  • 6 个最佳开源 AI 仪表盘工具
  • 红队日记 --- W1R3S
  • 深夜炸场!GPT-5.2发布;Meta被曝用阿里千问优化新模型;马斯克点赞腾讯游戏业务:他们的品味非常好 | 极客头条
  • 毕业设计实战:基于SSM+MySQL的图书商城管理系统设计与实现,从需求到测试全流程拆解,新手也能轻松通关!
  • springboot基于vue的承德市养老院智慧健康检测系统_ 用药提醒 一键呼叫 1f16uvca