• 寒假集训总结


    简述

    寒假学了图论与数论,这些内容并不简单,但毕竟由本校大佬总结出的精华,由于时间较短,很多地方来不及实现,因而这些题目大多都没有时间去实现。题目没有那么简单,基本上一道题很难想到正解。确实对于我自己而言是一次挑战。两次考试的成绩并不理想。但经过这么多天的时间的学习,可以说在脑中形成了一种数论及图论的框架,至于其中一个个分支,一个个细节的完善就需要自己课下来进行练题了。

    图论

    最短路

    最短路自己是有过学习的,最短路算法自己是可以打出来的,算法固然是一个模板,我们需要利用这一模板自己构造,才能达到做题的目的。就比如说需要求次短路,我们则需用另一个数组来保存。需要令最大路径最小,我们则需要改变松弛条件。

    同时呢,也有一些题,用一般的最短路是无法做出来的。我们则需要找边与点的特殊性质,利用这些性质来达到修改算法的目的。

    有的题目,题目条件不明显,我们几乎都联想不到最短路,因而就有难以解答,一些隐性题目,我们在未有思路的情况下还真的要仔细分析一下条件。

    很多题目还没有做,做题其实也就是熟悉与运用最短路算法的过程。

    最小生成树

    算法还是熟悉,但一遇到题目却是不能够快速想得出来。

    最小生成树有着许多的变形,如次小生成树,最小方差生成树,如遇此类题目,我基本就只会暴力枚举了。因题而异,我们需要枚举一些特殊的值如树边,权值

    最小生成树也是有很多性质的,做题的时候我们如需更改生成树,其实就可以从性质出发来进行考虑,这样才能达到效果。

    依旧很多题没有刷。

    LCA

    LCA算法其实不少,一些算法呢,也有很多新的东西,如什么欧拉序,还有rmq算法。可以说是比较难以理解的。

    一些算法有自己的性质,我们需要根据题目来确定算法。暴力算法好写,也适用于一些特殊的树,倍增算法可以很好处理树上路径。tarjan能够一些求出所有点对的lca。各种算法有各种特性。

    树DP

    树DP其实本人看来略微偏向于DP了,只不过是利用树这一个结构来进行状态转移,利用树形结构来进行DP。树这个结构,根据题目其实有着诸多性质,根据性质出发来进行构思是一个基本思路。

    当然DP的基本功是不能差的。作为图论中的一部分,很多地方与其他的算法有着交叉,可以说是综合能力的体现。

    一个图,在有些时候其实处理数据是十分困难的,抓住条件就非常重要。

    考试&总结

    题目是都涉及到了近日所学的算法,还是没能够举一反三。题目有比较隐晦的,构图还是没有问题。题目条件的考量还是没有分析到位。边、点的一些性质考场并未推出来。

    个人认为有几个方面在解图论题时是十分重要的。

    1. 算法
    2. 性质
    3. 构图
    4. 优化

    说起来很简单,但实现却是长期的过程。况且图论范畴很广,一些内容我还并未接触。

    数论

    可以这么讲,一些证明题目课堂上几乎没懂...幸好,课下来自己想了一下,才明白了其中道理。

    数论的证明固然重要,但其实更多的是性质与算法,可以说算法的实现与性质的运用才是数论的重点

    大致列举一下这几日所学的数论内容:1.质数,整数分解,积性函数;2.埃拉托斯特尼筛法及欧拉筛。3.同余及辗转相除法;4.剩余类,剩余系,完全剩余类,简化剩余系及欧拉函数;5.欧拉定理,降幂公式,费马小定理,二次探测定理,威尔逊定理,素性测试;6.二元一次不定方程的解,拓展欧几里得,欧拉函数解,以通解求特解。7.逆元,费马小定理求逆元,拓展欧几里得求逆元,模数为素数时,递推求逆元;8.拉格朗日插值法与中国剩余定理(CRT);9.高斯消元和异或线性基。10.组合数;11.杨辉三角和二项式定理;12.预处理阶乘,lucas定理,CRT建线性同余方程,legendre定理质因数分解阶乘----求组合数。

    不得不说学的东西不少了,而且很多都是新的内容,自己也有部分内容未掌握。

    数论没什么好说的,考试的时候需要推,公式代码也要记得住,证明过程最好要理解。考试也许就靠着平时的证明训练来帮助我们想性质想算法了。

    至于考试呢,有一个换行符的问题,其实我觉得这个无关紧要,就算有这一个测评的问题,我还不是没有一道题AC,那还是没有什么意义。能真正做得出题目才是最为重要的。考试也不能光靠骗分。

    第一题其实就考的计算了,一些方式方法都说明完了,然而自己依旧没算出正解。

    第二题题目数据多样,考试的时候想到了递推和legendre定理,当时选择前者,虽然我知道只过得了部分数据。结果发现legendre定理+优化是正解。

    第三题完全是题目性质题,发现这一个最大生成树的边的性质就很水了。

    第四题综合题,当时被数据吓到了,结果发现似乎用积性函数,管它数据多大。

    总结

    1. 自己的基础并不出众,很多题目难以想到正解
    2. 课下实现代码花的时间不够多
    3. 分析题目的时候不全面,条件性质要漏掉。
    4. 对于自己想到的算法犹豫太久,浪费时间。

    规划

    1. 上课认真听课,多动笔去计算。
    2. 课下积极实践消化上课时的内容,效率要高。
    3. 多加练题,多想一想题目,自己分析条件来做。别人的思路理解起来始终慢一些。
    4. 要能够举一反三,真正理解老师的题目
    5. 模板还是要能够打得出来,并且自己也要能够因题修改

    flag就不立了。寒假的内容还有很多需要我去消化。不过从去年提高组的成绩来看,我也自然希望今年的省一。

  • 相关阅读:
    调用Type.InvokeMember()时出现MissingMethodException
    C#学习之Delegate
    WCF之元数据交换 (Metadata Exchange)
    定义Enum的开始和结束,这样就能循环Enum了
    定制自己的Visual Studio的Debugger Visualizer
    C#中 #if DEBUG 和 Conditional("DEBUG")的区别
    从哪里开始学习Windows 8?(zz)
    Macro 小总结
    WPF应用的图标
    如何把 Visutal studio中的“printonbreakpoint”消息打印在程序的任何地方
  • 原文地址:https://www.cnblogs.com/lover-fucker/p/13566691.html
Copyright © 2020-2023  润新知