摘要:
树链剖分 给定一个树,将一棵树分成几个链,每个点只能在一个链上(每个节(非叶子)点选一个儿子连下去) 剖法:长链剖分(找深度最大儿子子树连接),重链剖分(找子树大小最大的子树连接) 性质:一个节点不断地向上走,如果遇到了一条轻边,这条轻边的父亲节点的子树大小一定是会翻倍的 所以只会经过O(logn) 阅读全文
摘要:
启发式合并 有n个集合,si = {i} 每次将两个集合sx, sy两个集合合并,做n - 1次变成一个集合 启发式合并就是维护每个集合是什么 并查集是相当于只是打了一个标记,查询的时候再把之前的标记更新好 启发式合并是将集合真的给合并在一起,然后删掉被合并的集合 并且保证每次都是小的集合合并到大的 阅读全文
摘要:
倍增 1.求lca 2.log求k级祖先 3.lca:可以记录路径上的信息(没有修改的) 点上的和边上的都可以 并且这个信息需要容易使用倍增的形式进行合并(轻量级数据合并) // 维护路径上边的最小值 #include<bits/stdc++.h> using namespace std; cons 阅读全文
摘要:
题意: 面前有n个门,选择每个门的概率相同,每个门都对应一个时间,如果时间为正值,就表示此门可以走出去, 时间为负值,表示走此门还是会回到原地,而且还花费时间,但是回到原地以前的记忆就在没了, 也就是说前边的时间作废。求出去的时间期望 思路: 因为会回到原地,所以回到原地后走的期望和没走之前的期望都 阅读全文
摘要:
笛卡尔树 每次将序列中最小的数当成根,递归左右,对跟左边和右边递归地建树 最大的也是类似的 性质: 区间最小值:两个端点的lca的值 笛卡尔树的中序遍历是原数组(对一般的二叉搜索树都是成立的) 一个点,一路向上都是父亲的左儿子,然后再是一个的父亲的右儿子, 第一个左儿子是右边第一个大于等于他的,第一 阅读全文
摘要:
![](https://img2022.cnblogs.com/blog/2511085/202204/2511085-20220407120537238-2053169369.png) ![](https://img2022.cnblogs.com/blog/2511085/202204/2511085-20220407121203202-287186649.png) ![](https://i 阅读全文
摘要:
![](https://img2022.cnblogs.com/blog/2511085/202204/2511085-20220406190912419-758035607.png) ![](https://img2022.cnblogs.com/blog/2511085/202204/2511085-20220406192015159-710513588.png) ![](https://im 阅读全文
摘要:
![](https://img2022.cnblogs.com/blog/2511085/202204/2511085-20220406161437497-945995.png) ![](https://img2022.cnblogs.com/blog/2511085/202204/2511085-20220406162640991-365250528.png) ![](https://img20 阅读全文
摘要:
![](https://img2022.cnblogs.com/blog/2511085/202204/2511085-20220406160454435-1750242999.png) ![](https://img2022.cnblogs.com/blog/2511085/202204/2511085-20220406160515687-1416307157.png) ![](https:// 阅读全文