上午补了几个上次树状数组的题目,只是看了题目的的转化,和为什么要用树状数组,由于都是树状数组,这几天写过几个,就没写代码。一般是有前缀性质,或者连续性质,前后联系性,可以用树状数组,无论是加和,还是乘除什么的,都可以维护,其实应该说lowbit,用lowbit减少时间复杂度。
下午打了比赛,和之前一样,也是悲伤,J题看到很多人过了,本以为是知识点不全,或者规律没找到,没想到竟然是取前一百大的数暴力求解。这个真是涨知识了,以后遇到类似的可以试试了。由于当时时间早,就看了C,明显是一道组合数学的题目,然后就推推推,推公式,我推公式速度慢点,还差个组合数,没推出来,队友已经基本推出了,但是直接算,是不行的,毕竟数据是1e18.然后由于最多是1e6项,就会想到推递推式,把式子全部展开,就可以了。终于做出了一道简单的中档题,虽然过程曲折,但是这些曲折都是经验,可以为以后做准备。
虽然数学专项学的并不是很多,但一直以来,慢慢补,也补了很多。从做题,也看出,数学很重要,是基础。要多看多研究。当然,还有数据结构,是很多题目做出来的基础,没有一个好的数据结构把复杂度降低一下,是会超时的。
现在就是多看别人对于某种知识的用法,吸取这些用法,这样虽然不能举一反三,但也能招架一二。因为,发现,知识是基础,灵活运用是王道。有了知识会模板,能灵活运用才能打比赛。