树的倍增
cervoliu
这个作者很懒,什么都没留下…
展开
-
JZOJ 3101【NOIP2012提高组】开车旅行
倍增算法 链表维护 Analysis这题比赛时没时间想,直接听了正解。 易看出对于每个点,最近点和次近点要预处理出来。那么,预处理之后怎么办? 对于最暴力的做法,可以一步一步让A和B轮流跳,暴力判断。 等一下,“跳”好像让我们想到了某些东西。 好像可以用倍增,在这题是单点倍增。这里一个点有最近和次近,我们如果要跳,肯定不能分开处理。于是把A走一步之后B也走一完步算作一个轮回。那我们原创 2016-03-16 20:05:17 · 675 阅读 · 0 评论 -
【JZOJ 4701】 Throw
Description Analysis设S(x,y,z)S(x,y,z)为数轴上由左到右依次的三个点,且l=y-x,r=z-y 根据题意,y往两边跳后可以得到S(x−l,y−l,z)S(x-l,y-l,z)和S(x,y+r,z+r)S(x,y+r,z+r),而且左右两边只有一个点能往中间跳,那么我们把S(x,y,z)S(x,y,z)看成后两者的父节点,这就是一个树的模型。 那么答案就是树上的原创 2016-08-15 20:12:53 · 360 阅读 · 0 评论 -
【JZOJ 4811】【NOIP2016提高组 五校联考1】排队
Description Analysis首先可以知道,每个房间的优先级是一定的。 所以可以一遍dfs求出每个点的优先级。 考虑你要每次找出一个优先级最高的没人的点,同时还要支持让一个有人的房间重新变成没人的房间。你想到了什么? 没错,就是堆。 第二问显然可以倍增一下,整个过程用堆维护。Code#include<cstdio> #include<vector> #include<cmath>原创 2016-10-05 19:33:07 · 580 阅读 · 0 评论 -
【JZOJ 4639】 Angel Beats!
Description天使立华奏攻入了死后世界战线(SSS)的地下工会Guild,这是万分危急的时候。仲村由理指挥工会成员有条不紊地进行撤退工作。工会成员在Guild最深层工厂安放炸药需要很长的准备时间,需要有人来拖延立华奏的前进速度。但是他们并不清楚立华奏的具体位置,因此他们需要设立许多个防御点。 Guild的结构可以看成一棵有n 个节点的树,有时由理会得到立华奏的大概位置,可能在某两棵子树的任原创 2016-07-17 12:19:56 · 750 阅读 · 0 评论