2024年寒假初ACM训练总结

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之路的引子,未来的路还长着,需要我持续的学习。希望能够顺利参赛,至少拿到一块铜牌。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ACM Codebook(ACM代码手册)是一本整理了算法竞赛常用算法和数据结构的参考手册。它是为了帮助算法竞赛选手快速查阅各种算法和数据结构的实现而编写的。 ACM Codebook的内容非常丰富,包括了各种常用算法,如排序算法、图论算法、动态规划算法等。同时,它还包含了各种常用数据结构的实现,如链表、栈、队列、堆等。此外,ACM Codebook还介绍了一些常见的算法设计技巧和优化技巧,帮助选手更好地解决问题。 ACM Codebook的作用非常明显,首先它提供了各种算法和数据结构的实现代码,方便选手直接复制粘贴使用,节省了编写代码的时间。其次,ACM Codebook提供了详细的算法和数据结构的说明和示例,帮助选手理解和掌握这些算法和数据结构的原理和用法。最后,ACM Codebook还提供了一些常见问题的解决方案,帮助选手快速解决问题。 ACM Codebook的编写并不容易,需要作者具备扎实的算法和数据结构基础,并且对算法竞赛有深入的了解。编写ACM Codebook需要不断地修改和更新,以适应算法竞赛中不断变化的需求。 总之,ACM Codebook是一本非常有用的参考手册,它不仅提供了丰富的算法和数据结构的实现,还提供了对应的说明和示例,帮助算法竞赛选手快速掌握和应用这些算法和数据结构。它是算法竞赛选手在比赛中必备的工具之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值