![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树倍增
文章平均质量分 55
commonc
这个作者很懒,什么都没留下…
展开
-
BZOJ2851: 极限满月
题目大意:首先给你所有的A集合,第i个集合里的数全部小于i,接着开始构造B集合,第i个B集合是由{i}∪前面所有满足条件的Bk集合的交,满足条件的Bk集合指的是满足k∈Ai,然后给Q个询问,每次询问一堆B集合的并的元素个数这题考试的时候我看了挺长时间....到最后也没想出来...考完了之后xuruifan告诉我是虚树,然后我就震惊了,因为我没看出来跟树有半毛钱关系...然后就只能回原创 2016-06-13 19:14:13 · 950 阅读 · 0 评论 -
BZOJ2791: [Poi2012]Rendezvous
题目大意:有n个点,每个点有一条出边,再给出q组询问,每组询问由两个顶点a、b组成,要求输出满足下面条件的x、y:1. 从顶点a沿着出边走x步和从顶点b沿着出边走y步后到达的顶点相同。2. 在满足条件1的情况下max(x,y)最小。3. 在满足条件1和2的情况下min(x,y)最小。4. 在满足条件1、2和3的情况下x>=y。如果不存在满足条件1的x、y,输出-1 -1。2原创 2016-06-30 14:41:31 · 664 阅读 · 0 评论 -
BZOJ3364: [Usaco2004 Feb]Distance Queries 距离咨询
题目大意:给一棵树,求两点间的距离方向什么的根本没用,挺无聊的一道题随便以一个点为根,x,y之间的距离=d[x]+d[y]-2*d[LCA(x,y)]只需要求LCA就可以啦,树倍增随便搞#include#include#include#include#define N 100010using namespace std;int fa[N][21];in原创 2016-09-01 15:01:43 · 923 阅读 · 0 评论 -
BZOJ2093: [Poi2010]Frog
题目大意:给一条线上n个石头,青蛙从跳m步,每次跳到离当前第k近的石头,求以所有点为起点最终会跳到哪很关键的一步是求出从每个点跳一步会去到哪里这个可以用两个指针维护一段区间,代表前k近的石头的区间,然后从左到右扫一遍,指针也跟着平移,就能O(N)扫出来了之后的部分可以在环套树森林上DFS来O(N)出解,不过这个有点麻烦,于是我就写了个倍增(环套树倍增也算树倍增吧?)不过倍增原创 2016-09-21 09:27:54 · 761 阅读 · 0 评论