P2146 [NOI2015]软件包管理器

P2146 [NOI2015]软件包管理器

树剖板子题

subtask1:install x:将x->1路径上的点区间覆盖为1,输出t[1].sum-last

subtask2 :uninstall x:将x的子树区间覆盖成0,输出last-t[1].sum

在代码实现的时候需注意:tag.add必须赋为-1,0是会WA的

小技巧 每次记录last,用区间和的思想,每次操作之前记录一下t[1].sum的值,更新之后再查询一遍t[1].sum的值,两者之差的绝对值则为答案。

  • 注意存点时下标+1,query的时候也要把query的点+1!!!!
原文地址:https://www.cnblogs.com/sjsjsj-minus-Si/p/11634754.html