周报(2)

1月14日

        组合数学习,对于这几天的学习都是与高精度算法有关,从扩展欧几里得,欧拉定理,求逆元都是与高精度有关,组合数也是一样,对于基础的组合数可以直接用递归就可以解出,然后就是对高精度组合数的学习,很明显,任何一个简单问题在对数据进行了扩大后,都变得不简单,组合数求解的式子中会很容易出现比较大的数和除法运算。因此,求组合数其实就是要解决这两个问题。

        1.用逆元求解(更喜欢用这种)

        2.lucas(卢卡斯)定理求解

推荐组合数 - 知乎 (zhihu.com)组合数 - WalkerV - 博客园 (cnblogs.com)(8条消息) 组合数 -csdn博客_i-Curve的博客-CSDN博客

对于一整天的学习,深刻感到了数论的难度,太难了www

1月15日

        矩阵乘法,对于这个内容学长讲的特别快,虽然说可以理解,但是对于矩阵乘法的代码实现还是不清楚,然后下午找学长要了个模板,然后一点一点去理解,最后终于理解了对于矩阵乘法的设想,就是通过一个有重要关系的矩阵(这个矩阵就是加速矩阵),找一个递推关系式,然后利用快速幂对那个矩阵进行次方求解,以致可以求出关系式中的所有值。。。

总结成一句话:前行乘后列

矩阵乘法成立的条件是左边的矩阵的列数等于右矩阵的行数两个矩阵才能相乘

矩阵乘法满足结合律分配律但不满足交换律

        然后下午打了一场比赛,这次比赛里面我发现很多对于字符串的问题,还有高精度的问题一直困扰着我,对于超过1e18的数学问题,用字符串转换为数字,等等问题还需要好好总结。

1月16日

         差分,双指针也叫尺度算法,还有离散化操作,对于差分比较好理解,就是前缀和的逆运算,至于尺度算法,与其称为尺度,但是我认为把他理解为双指针算法会更好理解一点,对于双指针算法主要的是强调单调性,只有单调才能使用双指针算法,虽然用了两层循环,但是决定时间复杂度的是内层循环,也就是说对于双指针算法的时间复杂度是O(n)的,而他的适用范围可以说是很广的,所以双指针算法很重要,不过感觉学长讲的东西实在是有点多,导致还有离散化的没怎么听懂,有点难消化,不过题目还好大部分都是双指针算法可以解决的,整体上对于自己在这个算法上的理解还是不错的。。。。。

        下午又打了一场图灵杯,虽然只打了5题,但是这5题有对自己学习过的算法的运用,其实还是有很大的收获的,对于在其他题上的问题也要在后面的时间去补回来。。。

        然后晚上就花时间在学习单片机上,一直搞到两点左右,确实难搞。。。

以后不能这么晚了!!!

1月17日

        对于这一整天来说,对自己的学习态度和效率要做出强烈的批评,学姐讲的哈希表没有仔细的听,导致对于哈希表的知识串不起来,而且当学姐讲完下播后,我的脑袋还是一阵懵,也不知道听懂没有,迷迷糊糊就又睡过去了,可能是昨天搞得太晚了,导致一整天精神状况不佳,然后下午晚上又去补题,对于前面两场比赛的题又重新去理解和分析,想知道自己卡在什么地方,所以就没有去打晚上的比赛,而且哈希表也还是没有搞明白,学姐出的那一题也写不出来,真的不能睡晚了,要把自己的精力调整到学习算法的时间去,还有不能拖拉,上次鼻炎引发的STL等问题还没解决,又有一大堆的算法要复习,所以明天的时间要分配好。。。

1月18日

        马拉车算法,是用来解决求取一个字符串的最长回文子串问题的。对于这种问题可以将时间复杂度降到O(n),也就是线性的,这个算法是字符串的题中很少能使用到的算法,虽然具有一定性,只能解决一类问题,但是想法和思路非常好,非常值得我们学习。

        对于一整天的学习,马拉车算法的内容也进行了系统性的理解,下面是关于马拉车算法两篇不错的博客文章

(11条消息) 最长回文子串——马拉车算法详解_HappyRocking的专栏-CSDN博客

(11条消息) Manacher(马拉车)算法详解_Charles_Zaqdt的博客-CSDN博客_马拉车算法

然后把自己能写的马拉车算法的题目写了,就去补前面比赛的题,看着那么多的字符串的题,明白了字符串的算法这几天要非常认真的学,不能懈怠啊!!!最后晚上的时候学长们给我们开了个会,让我明白更加不能懈怠,每一种算法都要去复习巩固,每一场比赛的题也要认真的去补,要理解每一题的用意,做出套路和规律,要去总结。。。

1月19日

        KMP算法是字符串算法的重要内容,也是比较难理解的一种算法,对于KMP算法,重点就在对next[]的理解,next[i]表示模式串P中以i(下标从1开始)结尾的后缀(不包括串本身)能匹配P的前缀的最大长度。KMP 算法用于解决字符串的单模匹配问题,即在一个主串 S 中查找模式串 P 的所有出现位置,该算法解决此问题的时间复杂度为 O(|S|+|P|)。所以,KMP算法是字符串算法里面很重要的一种算法了,由于是在预习的前提下,所以对于KMP算法有一个大致了解,学习起来还是,比较不错的,但是学会不代表会运用,写了几个题之后,还是得把学长他们的模板拿出来给自己作基石,在模板的底色下去进一步的理解vj上的题,然后写出了几题,哎,每天欠题,之后有的忙了,(说不定也是好事?以后复习的时候再来攻克原来不懂的地方,岂不是会更加深刻,对这个算法也更加熟练)

1月20日

        这一天学习的是字典树,很明显又是树,而这次是关于字符串的数,对于这种算法,在学长的细心讲述下,轻车熟路的掌握了这种算法的入门,对于他的几种运用也熟悉了,学长通过题目本身作为依托,讲述关于字典树的主要注意内容,重点讲了每一个变量的意思和作用,还在对范围的理解上做出了解释,让每一个人都能很好的明白,可是不就是退出的晚了一点嘛,没必要点名吧。。咳咳,然后下午就稍微放松了一下,出去玩了一下午,吃饭,买东西,到晚上回来才开始对字典树的题攻克,劳逸结合嘛,还是不错的!!!

1月21日

        周报的最后一天,也是早上没有课的一天,很自然睡到了10点左右,起来后就对自己前面学过但没有完全掌握的知识进行了复习和整理,当然了,首先还是把字典树复习了一下,对最大异或和的一下重点位置又重新理解了一下,深刻的分析了cnt数组在不同情况的用意,晚上就去攻克哈希,哈希的几种方式大致理解了一下,然后就决定先放着,实在是没心情了,明天再战,早些休息,养足精神。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值