BZOJ 3083 遥远的国度
这题的与 HAOI 2015T2 的不同点在于其有换根操作,但按照普通的思路我们可以发现,换根之后树的形态会有改变,每个节点的子树会发生改变,所以我们来分类讨论。
修改链的操作不会发生改变,现在只考虑子树minn。为了方便,我们定义现在的换的“根节点”为root(但实际上树的根节点为1),子树根为x,黑圈标明查询范围;
情况一 x=root,很显然此时应当查询整棵树。
情况二 lca(root,x)!=x ,此时直接查询x的子树即可,与换根无关。
情况三,lca(root,x)=x,此时我们应当查询与x相邻的节点中与root最近的点v在整棵树中的补集
可以发现v一定在root到x的链上,且一定是x在这条链上的儿子,倍增法可以求得v
code:

这篇博客探讨了BZOJ 3083问题,即遥远的国度,主要关注点在于解决含有换根操作的树结构问题。文章通过分类讨论不同情况,如根节点不变、LCA不等于子树根以及LCA等于子树根时如何进行查询。博主使用倍增法来处理特殊情况,分析了如何找到与根节点最近的节点以完成查询任务。
最低0.47元/天 解锁文章
673

被折叠的 条评论
为什么被折叠?



