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

主席树(可持久化线段树)

主席树(可持久化线段树)

\(\mathcal O(N\log N)\) 的时间复杂度建树、查询、修改。

struct PresidentTree {static constexpr int N = 2e5 + 10;int cntNodes, root[N];struct node {int l, r;int cnt;} tr[4 * N + 17 * N];void modify(int &u, int v, int l, int r, int x) {u = ++cntNodes;tr[u] = tr[v];tr[u].cnt++;if (l == r) return;int mid = (l + r) / 2;if (x <= mid)modify(tr[u].l, tr[v].l, l, mid, x);elsemodify(tr[u].r, tr[v].r, mid + 1, r, x);}int kth(int u, int v, int l, int r, int k) {if (l == r) return l;int res = tr[tr[v].l].cnt - tr[tr[u].l].cnt;int mid = (l + r) / 2;if (k <= res)return kth(tr[u].l, tr[v].l, l, mid, k);elsereturn kth(tr[u].r, tr[v].r, mid + 1, r, k - res);}
};
http://www.hskmm.com/?act=detail&tid=37744

相关文章:

  • 二维树状数组
  • 2025 CSP 赛前复习笔记
  • Borland Turbo products
  • 港科语义地图-低带宽场景下的多机器人地图对齐与共享定位提供了通用基石 - MKT
  • Spring Boot 整合 MiniMax 与 CosyVoice 语音合成服务实践指南
  • 港科轻量化地图 - MKT
  • PandaCoder:致敬MyBatis Log Plugin,但我们做得更极致!
  • CF1401B Ternary Sequence
  • [DOS] Borland Turbo Assembler learning 8086/real-mode assembly
  • 搭建x86汇编语言学习环境
  • 闭包
  • Python---学习
  • 离在线SDK配置
  • 傅立叶,程心和路明泽
  • SpringBoot自动配置
  • AI元人文构想与余溪诗学空间:一场从诗意本源向智能未来的远征
  • 状压DP
  • 搞定三大PLC通讯:倍福与西门子、欧姆龙与西门子数据互通实战
  • 实验p66
  • 牛客2025秋季算法编程训练联赛2-(基础组提升组)
  • 局域网共享一键通_v2.0.9.9
  • newDay15
  • 每日反思(2025_10_23)
  • 树链剖分/轻重链剖分
  • 如何降低信息化系统的构建成本? ——信息化系统省钱全攻略:从规划到运维的实用技巧
  • C#编程时winform程序登陆记住密码和自动登录功能,关于App.config的问题及解决方案
  • 2025.10.23总结
  • Day2超链接标签
  • Ai元人文构想:你喜欢黑箱与偏见
  • 企业微信 使用api批量处理群消息