A Growing Tree
以前在NK竞赛队的时候,做过一道考试题目,并查集离线,倒着处理
这道题目是一样的,我们发现一个点只有在添加之后才会被更新,也就是只与这个点被添加的操作之后的操作有关,所以我们考虑倒着处理
接下来就变成了一个模板问题:加一个子树,查询单点
这个问题我们用dfs序解决(看到子树问题,想dfs序)
首先对原树(指加入所有点后的最终的树)进行dfs求出dfs序,然后倒序扫描操作,如果当前操作是加子树,那么我们找到\(v\)在dfs序中的对应的两个位置,把这两个位置之间的数全部加上\(x\);如果当前操作是查询单点,我们直接输出就好了(可以知道,这样不会影响最终的答案)
当然子树和问题也有可能是树上差分,别被思路局限了