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!!!!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步