2017年8月16日训练日记

本文详细介绍了树状数组的基本原理、核心思想及其实现方法。通过解析多个例题,包括敌兵布阵、比赛种数等,深入浅出地讲解了树状数组的应用场景和解题技巧。此外,还讨论了求超大数逆序数的离散化方法。

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

       今天训练的主要目的是看树状数组的课件、知识以及博客。今天对树状数组的理解也算是有了一个巨大的提升(看来先认真看资料、弄懂原理和核心以及理解码比直接做题有效的多得多的多)。一方面我终于明白了它存数的巧妙存法,也弄明白了它的基本原理、核心(i&(-i))另一方面我看了饶齐的博客有关树状数组的几个例题,并完全弄明白了四个相关的例题(敌兵布阵、比赛种数、牛的排列和点的价值),同时看了求超大数的逆序数的离散化方法,巧妙的离散再结合树状数组很完美的解决了逆序数的问题(以前我好像在哪见过这种方法,今天一看就秒懂,才知道这就是离散化)。关于树状数组的三种典型例题(变一个数求区间和、变区间数求一个数、变区间数求区间和)也已经完全理解。还理解了昨天没理解的x+1(防止c【i】下标为0)和add(b【i】,1)(将所有含b【i】的项加一)。

       对于每个看过的例题,我都自己独立地打了一遍代码(当然有错的地方,都已经理解了)。不过没A题,感觉不大舒服。。。(但是认真看资料后,经过认真思考后,的确能理解、学习到很多知识,感觉也不错)但是具体树状数组能解决哪些问题我还没总结出来(不过至少求逆序数用树状数组可以完美解决了)。

       总结:今天熟悉并理解了树状数组的基本原理、核心思想和基本框架,弄明白了几个比较基础的例题。明天继续看饶齐博客中有关树状数组的部分,争取都看完并理解。

      珍爱生命,远离题解。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值