我的思路是,首先记录一个数组代表着几时做完,用平衡树维护。平衡树再记一个最小下标和当前下标 minid 和 id。
- 1.如果有小于等于当前开始时间的,那么分裂成两棵树,在左子树根节点找出 minid 更新。
- 2.如果没有,那么直接求出整颗平衡树中最小值的节点,按这个分裂。在左子树中找 minid 更新。
删除操作还需要删除相对应最小的下标,所以需要记录 mpid 表示这一个 id 的下表。在访问的时候找出来并且不断向上跳更新 minid 最后删除。
但不知到 Treap 的 father 存错了,后面直接跳到 0 去了,求条:提交记录。