刚学 OI 一天,蒟蒻求问,关于 splay
  • 板块灌水区
  • 楼主mbzdf
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/12/14 09:27
  • 上次更新2024/12/19 10:53:37
查看原帖
刚学 OI 一天,蒟蒻求问,关于 splay
936578
mbzdf楼主2024/12/14 09:27

据我理解,splay 每次操作是(均摊) O(logn)O(\log n) 的,而且在每次操作后都会将操作的那个节点旋转到最顶端。

但是我认为这种情况可以把它卡到单次操作 O(n)O(n)

加入我们依次插入 1,2,,n1,n1, 2, \dots, n - 1, n,那么 splay 就会变成这样:

n
/
n-1
/
...
/
2
/
1

此时我们查询一下 11 的排名,splay 就会变成这样:

1
\
 2
 \
  ...
   \
    n - 1
    \
     n

显然,由左倾链变成右倾链是 O(n)O(n) 的,然后如果我们又查询 nn 的排名,splay 又会变成原样:

n
/
n-1
/
...
/
2
/
1

如果我们一直这样 1,n,1,n,1, n, 1, n, \dots 地查询,那么 splay 是不是就被卡成 O(n2)O(n^2) 的了吗?

蒟蒻刚学 OI 一天,勿喷。

蒟蒻想知道,本人的理解错在哪了。

2024/12/14 09:27
加载中...