2024.1.18训练总结第一次
一、大事记
2024.1.13第一天:基础算法
2024.1.14第二天:第一次个人赛(28/AC:7)
2024.1.15第三天:基础数据结构
2024.1.16第四天:第二次个人赛(51/AC:3)
2024.1.17第五天:基础数论
2024.1.18第六天:第三次个人赛(26/AC:6)
二、学习内容总结
(一)基础算法
1、学到了关闭同步流以提高速度、一些宏定义的写法等小技巧,从学长那里学到了一些好用的模版(虽然还没有全部背过)
2、深切认识到算法对时间复杂度的重要性(由于刚开始太多题都TML了)
3、知识上:
(1)枚举法
(2)模拟法:第三次个人赛感觉全是模拟
(3)排序:之前只会冒泡排序的板子,现在已经十分熟练;而且还了解到了归并排序,不过还没很熟
(4)贪心算法:主要是学习思想
(5)前缀和与差分:已经掌握一维前缀和,二维前缀和以及差分有待提升
(6)分支算法:也是学习思想,运用于归并排序、二分、三分
(7)高精度:了解到_int128的板子,那个斐波那契数列的题真的卡了好久
(8)离散化:有待学习
(9)尺取法:做了几个双指针的题,有一些自己的体会,感觉这里学得还行
(二)基础数据结构
1、之前对数据结构真的一点都不了解,现在至少有所了解了
2、以前听说过二叉树,但没有详细学习过,现在感觉有所认识
3、知识上:
(1)栈与队列:后缀表达式求值那道题做起来很有意思,加深了对栈的认识;单调站与单调队列有待学习;
(2)堆/优先队列:堆和栈竟然不一种东西!堆是树!初学的时候很震惊;经过题目的训练对堆的操作有所认识,有待熟练;
(3)STL常用容器:vector用过几次,感觉就像数组,stack和queue题目中有所涉及,set和map学长说很重要,但是自己还没有能够熟练掌握
(4)并查集:城市间修路那个题印象很深,还有学长讲的“拉帮结派”很生动
(5)差分前缀和:重要内容再现
(6)树状数组:这里上课的时候就没听懂,之后自己也还没学会感觉
(7)ST表:没学会
(三)基础数论
1、高中的时候打过数学竞赛,对这块内容有所了解,感觉前半节课听起来比较顺畅,但是后半节学长讲的飞起,一些定理只知道内容,怎么证明完全没听懂
2、这里面的内容和之前学过的线性代数联系起来了,感觉很有趣,尤其是那个矩阵快速幂算法,非常感兴趣,昨天晚上回宿舍又整了一会,感觉很好玩
3、这节课学长把每个联系题的思路都抽象出来讲了,感觉这样做起题来更有方向,对知识的理解也更深入
4、知识上:
(1)异或:这个运算还有与运算,或运算之前上复习大计基还有上程序设计原理课程的时候都没重视,现在发现其实很有用,晚宴1和2两个题加深了印象
(2)左移和右移:以前不知道有这个东西
(3)快速幂:这个东西感觉很神奇,又学到了新东西
(4)辗转相除法与更相减损术:之前有所了解,现在学到了如何用代码实现
(5)线性代数:学会了矩阵乘法的代码实现,利用矩阵加速递推!还有高斯消元法解线性方程组的板子
(6)筛法:之前了解过埃氏筛,现在更进一步学到了线性筛
(7)欧拉函数:之前学过,不过基本忘记了,又重新唤醒记忆
(8)贝祖定理、扩展欧几里得算法、剩余中国定理、乘法逆元:从这里就开始懵了,以后有时间再学吧
(9)组合数学:高中基础知识之上新了解到一些递推公式
(10)卢卡斯定理:以后学吧
总思考:
这几天学到的内容真的很丰富、充实,但是学习深度有待加深,之后没有学会的需要重新学习,学过的还需要进一步加深,整体上很满意,最主要的是自己的眼界开阔了,知道自己有哪些不足以及有哪些长处值得发扬。
四、个人赛总结
(一)2024.1.14第二天:第一次个人赛(28/AC:7)
第一次感受acm,虽然之前有过一个新生赛,不过全英文的题目还是感觉不一样,难度偏低,总体做的还算满意
(二)2024.1.16第四天:第二次个人赛(51/AC:3)
这次感觉非常不好!!!卡死在第三题上了,最后也没做出来,影响到其他题的做题心情还有时间,导致有道简单题没做出来,极大影响了排名,这次失利值得反思教训!
(三)2024.1.18第六天:第三次个人赛(26/AC:6)
今天的题总体上还好,感觉全都是阅读理解题,不过刚开始做第一题的时候一上来有点懵,交了几次都没过,心态差点没了,好在半个小时没出来直接暂时放掉,转做AC多的题,还好其他有几道简单题,自己也抓住机会都过了,没再出坎坷,然后转回头来看第一题发现只有个位数的人没过,其实感觉反而轻松了,知道自己能做出来,就重新换了个思路,很快过了,心态也回来了,最后的一个小时左右又过了两道,排名升上来了,之前一直是四五十的感觉。
总反思:
摆正心态,相信自己,不在一道题上死磕,先把简单题拿到手再去冲难题,这个说起来简单,做起来难,希望接下来的几场比赛能够好好实践。
五、练习题总结
几次练习题有难有易,不过都和当天学习的内容密切相连,我基本上刷过了一半多的题目。这几天做了很多很多的题,感觉有些疲惫了,但是感觉自己确实提升了不少,从最初一见到题目无从下手变为有点思路了现在,我认为本次的集训结束后我的编程能力会大幅提升。
——————————————————————————————————————————
2024.1.24训练总结第二次
一、大事记
2024.1.19第七天:图论基础
2024.1.20第八天:第四次个人赛(40/AC:6)
2024.1.21第九天:动态规划基础
2024.1.22第十天:第五次个人赛(22/AC:8)
2024.1.23第十一天:字符串基础
2024.1.24第十二天:第六次个人赛(24/AC:7)
二、学习内容总结
(一)基础图论
1、之前只是听说过图论的相关内容,从未仔细学习过,因此听得比较吃力,最后的练习题和测试题都没有完成,感觉图论部分难度较大,准备寒假系统地学习图论;
2、知识点
(1)图的概念:首次接触,较为新奇
(2)图的存储:邻接矩阵、邻接表、链式前向星——有待学习
(3)图的遍历:DFS和BFS算法——概念知道了,但是需要深入学习
(4)树:定义、性质、操作(前缀和、差分)、路径修改(点差分、边差分)
(5)最短路:Floyd、Bellman-ford、SPFA、Dijkstra——有待学习
(6)差分约束:差分约束系统——有待学习
(7)最小生成树:生成树的定义、性质,Kruskal、Prim——有待学习
(8)拓扑排序:DAG有待学习
(9)分层图最短路、同余最短路、二分图、匈牙利算法、二分图最小点覆盖、最大独立集——有待学习
(二)动态规划基础
1、感觉动态规划问题学的内容可以理解,题目难度较低,感觉学的比图论好,也可能是因为出的题目较简单,不过至少基础知识能够大部分掌握,其中的01背包问题感觉比较有趣
2、知识点
(1)动态规划基础:线性动态规划问题(最大区间和问题、动态规划决策方程、LIS问题)、多维动态规划问题——做起题来感觉还行
(2)背包问题:01背包、完全背包、多重背包、分组背包——看着代码能够理解,独立做题有待提高
(3)区间动态规划
(4)数据结构优化:LIS问题
(三)字符串基础
1、哈希映射感觉印象较为深刻,其他算法感觉难度较大,没有掌握
2、知识点:
(1)字符串STL:有一些函数需要记背
(2)字符串哈希:将字符串映射为整数,感觉比较神奇
(3)KMP算法:求解字符串匹配——有待学习
(4)manacher算法:求解最大回文半径——有待学习
(5)AC自动机:trie树、AC自动机、字典图、多模式匹配——感觉很高深的样子,有待学习
总思考:
感觉这几天学的内容大部分都好难,需要很长时间来消化
四、个人赛总结
(一)2024.1.20第八天:第四次个人赛(40/AC:6)
这次做的题目不少,但是排名较差,一个原因可能是题目难度不大,都做的挺多,再一个是罚时有点多,第一题又WA了好几次,还是自己没有考虑周全所有情况
(二)2024.1.22第十天:第五次个人赛(22/AC:8)
这次排名较好,感觉自己能力范围之内的题目都拿下了
(三)2024.1.24第十二天:第六次个人赛(24/AC:7)
这次虽然排名不是自己的最好成绩,但是感觉做题很舒服,有WA的几次,但是很快自己就能发现错误,感觉这次做题心情很好
总反思:
经历连续十二天的强压训练,感觉自己的敲代码的手感逐渐火热,做题感觉变得顺畅,希望之后能有进一步提升。
五、练习题总结
这三次练习题部分,基础图论和字符串基础感觉都好难,没有完成,不过动态规划基础都是上课讲过的题,再次练习之后感觉良好。
总感想
经过十二天的集训,这几天一直在敲代码心无旁骛,是对自己的一次很好的锻炼,我重新认识了一些之前遇见过的知识,同时也接触到了许多新知识,。这几天我认为收获最大的是开阔了我的眼界,我认识到了编程的魅力,知道自己现在所学只是皮毛,需要深入再深入。
这十二天的学习只能算是ACM之路的引子,未来的路还长着,需要我持续的学习。希望能够顺利参赛,至少拿到一块铜牌。