acm周中小结

作者临近结课,虽不加入费老师的队,但会继续网上刷题并深入学习算法。本周老师讲解了线段树,其本质是二叉树,可实现区间查询和更新,还介绍了线段树在更新、查询操作上的时间复杂度,以及空间复杂度,同时提及线段树的操作和做题小技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(刚才提交了一遍,刚才才发现没有提交上,幸好检查了一下..)马上结课了,感觉自己还是从acm中学到了一些东西,可能学的不是太好,费老师的队我还是不加了,感觉自己并不是那块料,容易分心,做不到专注的干一件事情,但我会在网上继续刷题的,不会把学到的东西忘掉的,而且会进一步的学更多的算法。5000字的总结正在慢慢写,不急,要写就写的完美一点才好。

这周老师讲了线段树,线段树的本质是二叉树,线段树可以实现区间查询和区间更新

三个问题

更新点,查询区间。

更新区间,查询点。

更新区间,查询区间

线段树的时间复杂度

 

更新操作:由于总是一条路径从根到某个叶子,而树的深度为log2N,因而为O(log2N)

查询操作:每层被访问的节点不超过4个,因而同样为O(log2N)

 

线段树的空间复杂度

设长度为N的数组在线段树中有F(N)个节点

F(N)包括没有使用的下标为0的节点

若N=2n,F(N)=2(n+1)

若N=2(n+1),F(N)=2(n+2)

 

因而对于2n<=N<=2(n+1),有

2(n+1)<=F(N)<=2(n+2)

F(N)<=4*N

 

线段树的操作

点修改:在线段树中每次只修改一个点。

区间修改:每次修改一个区间的所有数。

离散化:一个小技巧。

 

做题时还是要记住暴力出奇迹,数不是太大就可以尝试用暴力,会有惊喜的。刷题!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值