算是比较入门的线段树题了
考虑线段树上维护三个值,sum维护总和,used维护当前结点是否还能进行操作,cnt100维护当前结点里面树上苹果数量少于100的树的数量。
我们可以发现每颗树上最多有1e9颗苹果,我们每次减去他三分之一,估算一下每颗树进行50次(k)以内的操作可以做到苹果数量小于10,每颗树遍历一次是log(n)级别的复杂度,因此总的操作复杂度为n * k * log(n)约为 1e8的时间复杂度。我们每次操作区间的时候,对于能进行操作的区间一直递归到最深,然后每当一颗树上的苹果数量小于100的时候我们就给它的cnt100标记为1,每当一颗树上苹果数量小于10的时候,我们就给它的used标记为true,表示当前结点不能再摘苹果了。然后我们用pushup上传信息即可。
标签:结点,复杂度,上海理工大学,苹果,2023,每颗,GPLT,树上,操作 From: https://www.cnblogs.com/qdhys/p/17223768.html