POJ3468 线段树的区间操作

今晚做这题,因为使用int型贡献了不少的WA,最后改成long long就过了。这题一看就可以明显注意到使用线段树来写了,原来不是很经常写更新区间的问题,在此对更新区间查找区间的题目进行一下总结。

 

更新区间的函数,注意记录一个增量add来表示这个区间从它的父亲结点继承下来的增量,当我们找到一个区间时候,就把增量全部转化为sum,也就是这个区间的总和,然后对add进行继承操作,最后清空add,之后就是三种情况的二分了。

对于求和函数,类似的,我们要先处理继承问题,然后二分查找结果,最后返回。

更新区间查找区间的题目一般比较烦,需要记录父亲结点继承的增量,所以我们把seg[k]对应的区间的边界也加入到结点信息中,这样可以大大减少函数的参数。

 

我的代码如下:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值