学习日记21

来源:互联网 发布:程序员的输入法 编辑:程序博客网 时间:2024/06/09 23:22

   今天中午做了一道用树状数组优化的dp题。还用了离散化操作。其实,这道题在我看题解的时候看到过,我一直迟迟不做的原因是,我以为这是那道要用高精度的dp题,想等等再做,网上写的是高精度模板,我会写高精度运算,但不熟练。后来一直在思考一个二维树状数组的题,这道题,是在一个区间内涂色,一共有两种颜色,最后问一个区间内的黑色块的数量,我刚开始根本想不出怎么用树状数组的区间更新区分两种颜色,分奇数偶数根本行不通,后来想起做过的几道暴力题,数据量很小,我再观察这道题,哈哈最大才100万,直接把区间更新暴力为单点更新,这样这道题就没难度了。

   后来还做了一道需要比较多数学运算的树状数组题,需要开两个树状数组,分别存放不同的东西,再经过加减乘除运算解决问题。这个比我看的拿到开55个树状数组的题少多了,一般的区间更新都是成段更新,但是有的问题是不连续的更新,但也是有规律的。是每隔k个单位更新一次,这样就可以划分区间进行更新,但只对一个树状数组进行更新。虽然这个地方我理解的还不太好。如此看来树状数组的题型还有好多,我这连基础都没完全掌握,还需要不断努力。

  今天其实还看了几道题,但是有的没思路,有的思路不正确,提交时wr,现在大部分容易一些的题都做完了,还剩下的这些,都不能很好的转化为树状数组,要不就是有的题主要不是运用树状数组,只是用树状数组优化而已。今天又学习了不少新内容,希望明天能看懂更多题,并且今天还学习了一点线段树。

  总结来看,做题时是需要想以前做的类似的题的经验的,这个类似不只是运用的算法和题型,还有思考的方向,思路,等等。

            做题时还需要注意题目的细节,比如样例,很多题目真正要考察的没有写在字面上,而是需要你自己去发现。