HDU1823二维线段树+易错点

本文分享了一次使用二维线段树解决特定问题的经历。从最初的实现遇到的问题到逐步优化,最终通过比赛测试的过程被详细记录。文章强调了正确理解和灵活运用数据结构的重要性。

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

话说一开始做线段树看到这题想到应该就是所谓的二维线段树,于是就敲了一下,敲完3K多B之后提交TLE之后一直不知道怎么回事于是去找了相关代码来参考,发现查找,更新,建树的思想是一样,但是我SB了,竟然把左右子树的位置还记下来了,因为之前一直用的动态储存就是指针,所以数据结构中必须要有两个子树的指针,但是这次用了静态的数组来储存,所以习惯性的就把左右儿子的信息记录下来了,后来才发现根本不用的因为如果父节点是N,那左儿子的下标必然是2*N,右儿子下标也必然是2*N+1,因此把这两个变量去掉了,并且操作一律用位运算代替,然后提交发现欣喜的WA了,然后想到给的活泼度左值不一定小于右值,身高也是,于是乎很自然就判断了一下,结果还是WA,然后再仔细看,发现建树的时候SB,因为活泼度的值是从0-1000的我却建树的时候用了1-1000然后把1改成0就A了,140ms不算太快也不算太慢!!线段树的确是个神物!!!必须要好好练习!! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值