题意
思路:
- 对于1操作可以采用类似链表的方法在元素 x x x 的后面直接插入 y y y 的值,即 n x t x = y nxt_x = y nxtx=y。
- 对于2操作可以采用链表的删除的方法先令 p = n x t x p = nxt_x p=nxtx 即 x x x 的后继,让 p r e p = p r e x pre_p = pre_x prep=prex 然后让 n x t p r e x = p nxt_{pre_x} = p nxtprex=p 但是有一个问题就是输出的时候是从头开始输出的如果头被删除了,那就只能从 n x t h e a d nxt_{head} nxthead 作为头开始输出了。
细节:
因为
X
X
X 很大所有不能用数组,可以用 STL
中的 map
实现。总的复杂度为
O
(
T
log
2
N
)
O(T \log_2 N)
O(Tlog2N) 可以通过。
当然也可以使用离散化来实现,具体的把所有的数来读入,排序后然后二分查找下标最后只会用
N
N
N 的大小的空间,复杂度也是
O
(
T
log
2
N
)
O(T \log_2 N)
O(Tlog2N)。