学习总结

这两天主要看了线段树集中几种类型的题目。

第一道是因为如果不离散化要开10的八次方的数组。而在,线段树中开这么大会超时。一般见的都是开到10的5次方的数量级。

第二个是一道铁路的关于转化为线段树的题目。问题是转化成对n-1个数进行m次区间更新最值,对于每段铁路而言,min表示该最早被使用的时间,max表示最后一次被使用的时间,最小花费即区间查询就是每天都加上这段铁路的花费,更新用线段树update,求花费时,还有个点,前缀和优化,降低时间复杂度。这道题目难点是转化为线段树要维护的常见的信息。想了老长时间。果然,线段树靠思维。

第三个,看了一个类型的题目,扫描线两道,一个求面积并,还有一个求周长并,这一般是扫描线的应用。

昨天看了几道树上路径问题,首先树链剖分,然后以每个点的dfs序建线段树,因为线段树中元素存储区间和,那么问题转化为线段树单点更新和区间查询问题 。对于树上dfs序用途,dfs序可以把一棵树区间化,可以求出每个点的管辖区间。它是树链剖分的必要内容。

另外昨天的讲区间所有数开根号向下取整也搞懂啦,因为一个不大于2^63的整数至多经过6次开根号操作就会变成1,所以就算所有点都更新时间复杂度也不会超过O(6*n),因此如果在用线段树维护区间和的时候,如果一个区间的和已经等于这个区间的长度,那么就不用往下继续更新,因为这时候区间所有元素都已经是1 ,所以就是利用的这一点。

因为昨天碰到很多线段树和树上dfs序以及树链剖分的题目,所以今天就又把这一部分的单纯知识认真学习一遍。


另外还看了一道线段树和中国剩余定理以及欧拉函数结合的题目,没看太懂,所以就还得补一下这两部分内容。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值