02 2024 档案
摘要:嘛,这个东西虽然叫时间线段树,但是和线段树好像关系并不大,只是借用了一下线段树的结构。 算法介绍 这个算法是用来解决这类问题的:每个操作只在一段时间内生效,然后询问某个时间点所有操作的贡献。 于是我们考虑离线,对整个时间序列建一个线段树,每次操作相当于是在这个线段树上进行了区间修改,所以我们可以利用
阅读全文
摘要:考虑当这个东西是一条链的时候我们该怎么做,显然 会有两个儿子,然后两个儿子分别是一条链。 所以我们可以给两个儿子的链上的所有节点分别加到两个堆里,每次取出两个堆的最大值加入到我们选择的答案中,然后把两个堆的最大值全部 pop 掉。最终的答案就是我们 pop 完一个堆之后,所有 pop
阅读全文
摘要:沟槽的公式,真是公公又式式啊。 考虑一个线段树节点维护一个线段(但一条线段可以被多个线段树节点维护),需要保证该节点被线段完全覆盖。 每次添加一个线段的时候: 如果当前节点没有被这个线段完全覆盖,那么直接递归左右儿子修改。 如果当前节点的线段比新线段严格劣(也就是对于每一个 都有 \(y
阅读全文
摘要:势能线段树。如果线段树上一个节点的 ,我们称其为关键节点,考虑定义势能 为线段树上关键节点的个数。 对于每次开方操作,如果当前节点为关键节点,则暴力递归左右儿子修改,否则: 如果当前节点 或 \(\max=\min+1
阅读全文
摘要:由于博客园存在关站风险,文章以后同步发在 这里,可能会有更好的阅读体验。 首先我们分析一下,如果我们已经知道了要走哪些点,我们可以怎么做。 考虑将 之间连边,发现题目可以被转化为给定一个图,要求对于每条边将其一个顶点染色,问最多能将多少个点染色。 于是我们对于每个连通块分开来
阅读全文
摘要:考虑将 之间连边,发现题目可以被转化为给定一个图,要求对于每条边将其一个顶点染色,问最多能将多少个点染色。 于是我们对于每个连通块分开来考虑。对于一个连通块,注意到我们不能将每个顶点染色当且仅当这个连通块是树,且此时可以染色的定点数量为连通块大小减一,如下: 如果当前连通块是
阅读全文