摘要: 对于 $f_0=f_1=1$ 的斐波那契数列有一个性质 $$f_i=f_{i k} f_k+f_{i k 1} f_{k 1}, \forall k \in \left[1, i\right)$$ 数学归纳法证一下 当 $k=1$ 时,$f_i=f_{i 1} f_1+f_{i 2} f_0=f_{ 阅读全文
posted @ 2020-02-16 21:11 Mrzdtz220 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 问题即求每个节点的子树内,按权值从小到大排序,前 $k$ 个 $c_i$ 加起来不超过 $m$,求 $\max \{k l_u \}$ 可以想到左偏树能快速维护子树内所有权值的大小关系 每个节点维护一个大根堆,然后合并和子树的堆 先把所有值都给加上,当它们大于 $m$,就一个一个pop,直到小于等于 阅读全文
posted @ 2020-02-16 16:41 Mrzdtz220 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 计算序列的逆序对,交换相邻两个位置只会影响它俩是否产生逆序对,和其他位置的大小关系无关 交换相邻两段同样只影响这两段之间形成的逆序对 那么对每一个节点开一棵权值线段树,维护它的子树内有哪些权值 然后线段树合并,将两个儿子的线段树合并到父亲的身上 合并左右的时候就考虑会怎样产生逆序对 假设左儿子为 $ 阅读全文
posted @ 2020-02-16 16:19 Mrzdtz220 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 并查集加线段树合并 直接对两个集合的根合并,查询也在并查集的根上查,这样就不需要可持久化了 阅读全文
posted @ 2020-02-16 12:03 Mrzdtz220 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 关于维护每个节点子树里某些东西的手段有:转化为dfs序的一个区间、dsu on tree(树分块?树上莫队?) 还有一个就是线段树合并 这个题就很nb 对每个节点开两个权值线段树 第一个线段树维护每个深度出现的颜色种类数,每种颜色只在最浅深度起贡献 第二个线段树维护每种颜色出现的最浅深度 维护方法就 阅读全文
posted @ 2020-02-16 11:10 Mrzdtz220 阅读(137) 评论(0) 推荐(0) 编辑