The Dynamic Optimality Conjecture states that splay trees are
competitive (with a constant competitive factor) among the class of
all binary search tree (BST) algorithms. Despite 20 years of research
this conjecture is still unresolved. Recently Demaine et al.
suggested searching for alternative algorithms which have small, but
non-constant competitive factors. They proposed tango, a BST
algorithm which is nearly dynamically optimal -- its competitive ratio
is O(log log n) instead of a constant. Unfortunately,
for many access patterns, tango is worse than other BST algorithms
by a factor of log log n.

In this paper we introduce multi-splay trees, which can be viewed as a
variant of splay trees. We prove the multi-splay access lemma, which
resembles the access lemma for splay trees. With different assignment
of weights, this lemma allows us to prove various bounds on the
performance of multi-splay trees. Specifically, we prove that
multi-splay trees are O(log log n)-competitive, and
amortized O(log n). This is the first BST data structure
to simultaneously achieve these two bounds. In addition, the
algorithm is simple enough that we include code for its key parts.