倍增法
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 · 345 阅读 · 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 long using namespace std; const int N = 1e...原创 2019-06-06 10:38:39 · 142 阅读 · 1 评论