寒武纪camp网络测试赛 地址:oj点我进入 A(树形dp+树链剖分) 题意: 分析: 考虑树形dp,f0(x)和f1(x)分别表示以x为根的子树,不取x点或取x点的最大合法子集的元素个数 那么对于一个询问来说,答案就是max(f0(x),f1(x)),我们的任务就是对于每次修改操作维护所有f数组的变化 假设我们新加入了一个x节点,很明显只有x以及x的祖先们的f值会改变 首先f1(x)=f0(x)+1,因为我多取一个x节点一定是合法的(题目保证权值从小到大) 然后考虑x的祖先fa,应该有f0(f…