题目中由三种操作,第一种:在指定位置插入一个当前没用过的最小正数。。。第二种:在序列中删除一个数的正负数。。。第三种:在序列中查询一个数的正负数之间的和。。。对于第一种操作,找最小正数可以用线段树来找。判断插入的负数位置前面的负数个数必定等于插入的正数位置前面的正数个数。。然后插入的负数位置又是最右端的,由此可以找出负数的位置。。。对于后面两个操作,可以开两个数组记录正负数在序列中的位置。。。数组存的不是位置编号,位置编号会随插入和删除数而改变的。。存的是数在序列中的节点(指针写就是指针指向的位置,数组模拟存的就是数组下标)。。这样就可以快速定位数在splay中的位置。。然后就可以用splay搞了。。。
#include
#include
#include
#include
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!