Splay 进食后人

P6136 【模板】普通平衡树(数据加强版)

Rindong @ 2024-10-23 16:29:15

以下是我刚学 splay 写这道题遇到的所有坑希望可以帮到你:

  • 数组记得开大,总共是一开始的 1e5 个,再加上可能插入的 1e6 个。

  • 每次修改了树都一定要 splay 一次,为什么?首先 splay 的复杂度是需要 splay 函数保证的,其次,信息发生改变后,其它节点需要更新信息,而 pushup 函数又只在旋转时调用!所以为了保证时间复杂度和正确性,在修改信息后必须 splay。

  • 求排名第 k 个数的时候,计算上当前点的数量时,别忘了添加的是 cnt 变量而不是 1


|