2017年8月16日训练日记

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

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

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

      珍爱生命,远离题解。





你可能感兴趣的:(训练日记)