倍增法
Self-Discipline
在校大学生
展开
-
倍增法实现LCA(以HDU - 2586为例)
题目:点击打开链接题意:求树上任意两点之间的距离。分析:LCA模板题,这是一棵无根树,把它转化为有根树,再用倍增LCA求出每个结点到根节点的距离,两点的距离:dist = dis[u] + dis[v] - 2 * dis[ LCA(u,v) ],复杂度O(nlogn)。倍增法求LCA入门参考https://blog.csdn.net/lw277232240/article/details/7...原创 2018-10-17 19:49:05 · 360 阅读 · 0 评论 -
Educational Codeforces Round 66 (Rated for Div. 2) Minimal Segment Cover
题意:给你n个区间,m个询问,对于每个询问求最少可以用多少个区间完成覆盖,区间可以重叠。思路:倍增法,f[i][j]表示i点连续向后扩展2^j个区间后可以达到的最后位置,预处理O(nlogn),注意一下细节。代码:#include<bits/stdc++.h>#define ll long longusing namespace std;const int N = 1e...原创 2019-06-06 10:38:39 · 154 阅读 · 1 评论