随笔分类 -  倍增

该文被密码保护。
posted @ 2019-10-13 20:46 水题收割者 阅读(3) 评论(0) 推荐(0)
摘要:分析 先求出每个点到终点的最短路 我们按照海拔从大到小排序 然后求出kruskal重构树 每次答案就是一个可行子树中的最短路的最小值 代码 阅读全文
posted @ 2019-09-19 10:00 水题收割者 阅读(185) 评论(0) 推荐(0)
摘要:分析 先建出最小生成树 之后每次倍增找环即可 代码 阅读全文
posted @ 2019-09-14 22:02 水题收割者 阅读(185) 评论(0) 推荐(0)
摘要:分析 我们发现k非常的小 于是我们对于每一个点暴力维护它到根的所有节点的深度k次方之和即可 每次找到lca然后用之前处理出来的数组加加减减即可 代码 阅读全文
posted @ 2019-09-14 14:36 水题收割者 阅读(175) 评论(0) 推荐(0)
摘要:传送门 分析 我们可以将一个点拆成logN个点,分别代表从点i开始,长度为2^k的子串 那么当我们处理两个区间相等的关系时,对区间做二进制拆分,拆成log个区间,分别并起来即可 当然我们这样做修改是省心了,但是同时查询的时候也会带来一些麻烦……因为,我们要求的信息是最底层的,只能是长度为1的区间,而 阅读全文
posted @ 2019-02-07 09:34 水题收割者 阅读(153) 评论(0) 推荐(0)
摘要:传送门 分析 我们知道无论往左走还是往右走一定都是往不低于这个点的地方走 于是我们可以考虑用倍增来维护一个点向左和向右走$2^i$最远分别能走到哪里 我们可以先用单调栈求出直走一步的情况,之后再处理倍增数组 值得注意的是有可能一直往左走不是最优情况,而先向右再想左会使答案更优 于是le[x][i]= 阅读全文
posted @ 2018-11-06 09:06 水题收割者 阅读(824) 评论(0) 推荐(0)