简单线段树/树状数组练习题小全

题单介绍

## 题目说明 保证大部分题目主要实现部分是线段树,剔除了仅使用线段树优化的题目。 本题单内的题目会不定期更新。 ### 必须掌握的模板 - P3372:线段树模板。 - P3374:单点修改,区间查询 - P3368:区间修改,单点查询 ### 较为复杂的懒标记维护 - P3373:要搞清楚加标记和乘标记之间的联系 - P1253:推平时要清空加法标记 ### 一些练手题 写好线段树的关键在于不断地练习,建议不要复制板子修改提交。 - P1816:区间查询最小值。 - P1438:线段树维护差分数组,区间修改,区间查询。 - P2023:P3373 的双倍经验。 ### 权值线段树、离散化与动态开点 这些都是很经典而且很板的 trick,务必掌握。 - P1908:权值线段树求解逆序对问题。 - P1801:在权值线段树上处理询问。 - P1637:同时处理顺序对与逆序对信息。 - P1168:在权值线段树上根据排名分治。 - P1486:批量加减可以在外部维护一个懒标记,然后就是权值线段树的问题了。 - CF915E:动态开点线段树的典题。 ### 特殊条件下线段树时空复杂度的证明 考察对信息中的性质的观察、分析与应用。 - P7492:对每个点的有效或操作至多只有 31 次。 - P4145:对每个点的有效开方下取整操作不超过 10 次。 - CF1638E:线段树维护区间连续颜色段+推平是均摊 $O(n\log{n})$ 的。 ### 询问/修改的巧妙转化 - CF242E:拆位处理区间异或/区间和,有 32 倍常数。 - P4513:线段树维护区间最大子段和——借助线段树的分治结构,以分治做法求解。 - P5278:考虑一个有限项数列是等差数列的充要条件,分别维护相关信息。 - P6617 减少无用的前驱后继维护。 - P10463:在差分数组上可以同时支持查区间 $\gcd$,做区间加。 ### 推式子拆贡献 形式多样,考察数学推导能力。 - P1471:拆式子维护计算方差的信息。 - P6327:利用三角函数公式处理区间加,并维护区间 $\sin$ 和。 - P2221:通过推导并维护每个收费站的贡献来算期望。 - P3707:暴力拆解 $\sum$。 ### 普通的线段树离线询问 典型的例子:询问区间包含的不同颜色种类,通常上可持久化能做到在线。 - P1972 - CF1000F ### 一些杂题 - P4514:二维树状数组。 - P1937:贪心+线段树 - P2572:码农练习题。 - P10673 - SP2916 ### 0/1 类线段树 用 0/1 类线段树可以很好地解决一些特定问题。 - CF1539F:从小到大离线算每个数的值。 - P2824:二分答案,将大小关系转化为 0/1 来 check。 ### 线段树维护矩阵乘法 - P6864:线性变换转成矩阵乘法,以支持快速维护修改。 - P8868:线段树+矩阵维护区间历史和

题目列表

  • 【模板】树状数组 1
  • 【模板】树状数组 2
  • 【模板】线段树 1
  • 【模板】线段树 2
  • 扶苏的问题
  • 忠诚
  • 无聊的数列
  • [AHOI2009] 维护序列
  • 逆序对
  • 黑匣子
  • 三元上升子序列
  • 中位数
  • Physical Education Lessons
  • [NOI2004] 郁闷的出纳员
  • [传智杯 #3 决赛] 序列
  • 上帝造题的七分钟 2 / 花神游历各国
  • Colorful Operations
  • 小白逛公园
  • XOR on Segment
  • 算术天才⑨与等差数列
  • 查找 Search
  • Interval GCD
  • 方差
  • 区间加区间 sin 和
  • [HAOI2012] 高速公路
  • [SDOI2017] 相关分析
  • [SDOI2009] HH 的项链
  • One Occurrence
  • 上帝造题的七分钟
  • [USACO10MAR] Barn Allocation G
  • [SCOI2010] 序列操作
  • GSS5 - Can you answer these queries V
  • 【MX-S1-T2】催化剂
  • Strange Array
  • [HEOI2016/TJOI2016] 排序
  • [RC-03] 记忆
  • [NOIP2022] 比赛
  • 【模板】线段树 1.5