线段树

应用中,线段树是一个工具
一个能快速完成查询,修改,的工具!
你的任务(题目描述)就是线段树上的权值
处理任务的方法就是线段树修改的方法

前缀和不能支持动态修改(因为这样修改每次都要把其以后所有的数组修改),所以对于此类问题使用线段树或树状数组

离散化的目的:一串数很大,且可能有小数

处理套路:
1.每个区间需要记哪些值
2.需要哪些标记
3.如何叠加标记(在已有标记的区间上增加新的标记)
4.如何应用标记(标记上记录的修改如何应用到区间上)
5.如何合并区间(用两个子区间上记录的值计算出本区间的值)
线段树所记录的:次数

例:
问题:求区间和,修改区间和
1.记区间和
2.记区间加(tag)
3.累加(结合律)
4.一个区间加上一个数=区间长度x这个数
5.sum[o]=sum[o<<1]+sum[o<<|1]

线段树的应用:
1.满足结合律(加减,异或和,区域最值)
2.满足运算的速度够快,(如阶数的矩阵乘法就不可以)

树状数组:
1.
+lowbit不断向上找点,-lowbit不断向下找点

树状数组求逆序对
1.离散化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值