【数据结构Trick集合】


  • 二维st表(支持查询一个矩形中的最值,O(\(N^2log^2N\))预处理,O(1)查询):设st[i][j][k1][k2]表示以(i,j)为左上角,长为\(2^{k_1}\),宽为\(2^{k_2}\)的矩形中的最大值,则预处理和查询都是由4个矩形构成。若查询矩形均为正方形,还可减去一维,即st[i][j][k],其他与前者类似。
  • 权值线段树和权值树状数组支持P3369 【模板】普通平衡树的所有操作,即支持插入,删除元素,查x的排名(前缀和),查排名为x的数(递归查找),查前驱(先查排名为k,再查排名为k-1的数),查后继(求[1,x]的区间和再加1即为后继的排名),树状数组做法见Here
  • 动态维护一个集合的第k大元素,可以用对顶堆来做,支持插入元素,删除第k大,k+1/-1。

相关