摘要: "传送门" 突然发现自己不大会维护位置这种题……学习了一下。 具体的操作还是使用$fhq treap$实现。什么split,merge都一样。问题是如何求位置。 首先我们在读入的时候,保存每个节点的权值和下标,并且按照权值进行排序,同时把它插入到一棵$fhq treap$中。 之后我们怎么查找一个节 阅读全文
posted @ 2019-01-22 14:54 CaptainLi 阅读(196) 评论(0) 推荐(0) 编辑
摘要: "传送门" 我还是没有逃过在这道题上debug好久的命运…… 我是使用$fhq treap$来做的这道题。写的时候写的挺爽的……调的时候真难受。 首先我们先来说说咋做吧。前5个操作对于$fhq treap$来说不在话下,只要多打两个标记就可以了。但是如何求最大子段和? 我们一般只会想到一种$O(n) 阅读全文
posted @ 2019-01-22 14:20 CaptainLi 阅读(229) 评论(0) 推荐(0) 编辑
摘要: $fhq treap$是个好东西啊!无旋转$treap$果然是好写,而且还是比较好理解的。 这种数据结构是由神犇fhq发明的。$Think\ functional!$ fhq神犇说,函数式编程的一大特点就是,不修改,只定义。普通的平衡树,无论是treap还是splay,都需要进行旋转来维护树的平衡性 阅读全文
posted @ 2019-01-22 14:03 CaptainLi 阅读(389) 评论(1) 推荐(0) 编辑
摘要: "传送门" 一道非常好的LCT/树剖题。但是像我这样的菜鸡想不到什么有效做法…… 首先我们可以很容易发现,一次如果要在链上连续修改那么肯定是从底向上的一端连续区间。如果我们把每个节点的输入值作为其权值,那么会被连续更改的一定是一端连续的为1或者为2的区间。 那么我们就可以通过维护这个区间来解决这道题 阅读全文
posted @ 2019-01-22 13:19 CaptainLi 阅读(297) 评论(0) 推荐(0) 编辑