A Growing Tree

以前在NK竞赛队的时候,做过一道考试题目,并查集离线,倒着处理

这道题目是一样的,我们发现一个点只有在添加之后才会被更新,也就是只与这个点被添加的操作之后的操作有关,所以我们考虑倒着处理

接下来就变成了一个模板问题:加一个子树,查询单点

这个问题我们用dfs序解决(看到子树问题,想dfs序)

首先对原树(指加入所有点后的最终的树)进行dfs求出dfs序,然后倒序扫描操作,如果当前操作是加子树,那么我们找到v在dfs序中的对应的两个位置,把这两个位置之间的数全部加上x;如果当前操作是查询单点,我们直接输出就好了(可以知道,这样不会影响最终的答案)

当然子树和问题也有可能是树上差分,别被思路局限了

posted @   最爱丁珰  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示