摘要:
题目链接 如果抛开换根的操作话,就是一个很简单的树链剖分的模板题。但是加了换根之后就边的复杂了起来。首先我们知道,肯定不能每一次换根之后都重新将树剖分一次,所以我们需要去找到换根之后的$root$和我们要去查询的节点之间的关系。 一个很不错的博客 首先来考虑一下如果换根之后,我们要查询的节点$u$刚 阅读全文
posted @ 2022-08-31 19:29
浅渊
阅读(24)
评论(0)
推荐(0)
摘要:
题目链接 题目大意就是要我们对一个区间执行区间翻转和整体移动区间的操作。 思路:将一个区间分裂出来再移动到另一个节点的后面,可以用$fhq-treap$来将这一个子树从原树中分裂出来然后再合并到后面去,同时区间反转操作也可以通过打标记的方式来确定这个区间要不要翻转,反转的时候只用将左右子树交换一下位 阅读全文
posted @ 2022-08-31 19:12
浅渊
阅读(28)
评论(0)
推荐(0)
摘要:
题目链接 需要实现区间覆盖,区间01取反,区间求和以及区间查询最大连续段。区间覆盖很好实现,区间$01$取反只需要用分别统计$01$个数的时候将他俩交换就可以了,区间求和在取反之后只需要$len - sum$就可以求出来了。重点就是区间最大连续子段,分成三类: $1.$左区间全满且跨越到右区间 $2 阅读全文
posted @ 2022-08-31 19:04
浅渊
阅读(46)
评论(0)
推荐(0)
摘要:
题目链接 主要要实现区间覆盖和区间查询不同数,看见区间赋值操作可能会想到$ODT$来实现,区间查询不同数直接另外开一个数组记录一下就好了,但很可惜$TLE$了,代码如下: struct ODT { struct Node { i64 l, r; mutable i64 v; Node (i64 l, 阅读全文
posted @ 2022-08-31 18:49
浅渊
阅读(23)
评论(0)
推荐(0)

浙公网安备 33010602011771号