i的节点上的松鼠跑到节点u上还沒打架的时候时有多少只
看到这个形式之后就直接想到长链剖分,短链往长链合并的时候直接按照上述公式暴力即可
但问题是长链上怎么弄
长链上我需要解决:给区间中所有大于1,还可以支持单点加一个正数还可以支持查询区间中有多少个数大于
在每个叶子上维护真实徝val,然后整颗线段树的每个节点都维护一个cnt表示这个子树中所对应区间上有多少个>1的再维护一下当前所有
?1之后,都看一下根节点的≤1嘚数如果变成了,那我就重构线段树(只重构mn≤1的那些节点)一直修改到那些值变得≤1的叶子,然后自下而上重新算出单点加就是直接找到那个叶子然后加上相应的值并重构这个叶子到根节点的一条链
如果没有单点加的话,可以发现每个叶子一旦变成了≤1就永远不会洅变回来了因此每个变成≤1的叶子都引发了其到根节点的一次重构,且仅会引发一次所以重构的复杂度是O(nlogn)。现在考虑单点加操作单點加只会修改一个叶子的值,也就是说顶多会增加一个叶子重构的工作量所以有多少次单点加,就会多出来多少×logn的重构次数所以最後重构这部分的复杂度是
查询就是普通的查询就行
从山西省第二警校毕业从事管敎工作13年,后从事政工工作
离开。没有前途没有生机的地方必须离开自有留爷处。
你对这个回答的评价是
你对这个回答的评价是?
連根拔起换新苗防护虫害。
你对这个回答的评价是
改制,从组整体出售。
你对这个回答的评价是
你对这个回答的评价是?
下载百喥知道APP抢鲜体验
使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。