关于一名大一零基础蒟蒻ACM变强的路子

20.10.8 我加入集训队,虽然当初回头出的题很水,都是一些会写代码就能做的题。但在当初的我wa了好几发的时候,心中真的极度不平静。非常害怕被刷下来。不过最后有惊无险用数学知识解开了那些题。我坚持了一年的数学竞赛倒是帮了我蛮多。也许当初没有那急智,或许我也不会选择ACM的路子,也不会有现在这个我。

说回ACM,大一前第一个月,我主要任务其实是学会一门C语言和C++,因为零基础的我,最痛苦的事情就是学语法,好在我背书记忆能力不错,把所有可能性背下来之后自然而然贯通了起来。也逐渐把C++的语法慢慢掌握了起来。当初印象里最绝望的是指针这一章,课本讲的稀里糊涂,网上讲的东西看起来很深奥,其实是真的很玄乎。无奈之下我也是曲线救国,从别的学长那里请教了好久慢慢搞懂了这些。之后封装多态也慢慢通过语法背诵掌握了起来。这样下来就到了11月了。(我是9月开始学的C语言)

另一方面,我刚进集训队就分组,分到了一个曾经打过oi的人和一个大二的绩点怪。我曾经也觉得这样的组合其实挺适合的,三个人都有打ACM的氛围,变强指日可待,或许可以坚持到我的大三。可现实远远比理想骨感,我打完第一场省赛的时候,大二学姐就因为学业压力放弃了ACM,因为ACM的提升更加困难,它并不像学习那样简单的就能掌握,而且还有海量的算法和技巧是今后鸡肋的东西。

说回我自己,我从11月开始正式学习算法和数据结构。当初因为分组的关系,我被分到了数论和动态规划。我把科技点硬生生从简单的递归,提升到了欧拉函数,然后是死活也学不明白了。矩阵系列更是因为没有线性代数的基础,学起来异常吃力。至于组合数学,容斥原理更是只学会了普通的递推互斥,其余一窍不通。抛开这些,我学会了简单博弈和sg函数,这些东西大抵是在一场又一场超越我自身能力的训练赛中收获的,仅仅很少一部分是自己在自主学习中掌握的。这点也让我意识到,其实我的平时学习压力是不够的,而且课程对我来说也是不能放下的东西。这一切都在束缚着我的手脚。

大约12月份,也就是期末考,校赛的时候。我被卡了一道图论板子题,成为了我一道过不去的坎。我意识到我的算法学习不应该因为所谓的分组而干扰。真正的算法选手不应该是“我不负责xxx,所以这题我做不来也很正常”,而是,“虽然我不负责xxx,但是我可以讲给你我用这个知识的思路”,甚至在队友可能完全没有思路的时候,我配合着我自己的所学可以给他一定的启发,让他知道这题其实是某几个知识点的变种。

于是我的寒假开始了。在此之前,我的题量大概是20到30左右(有人问我这个题量怎么算,我按洛谷照绿+,CF1800算的,别人我不管,主要是我不喜欢做太简单的题,感觉提升力度很低)

寒假报了寒假牛客算法训练营,简单的提高了一下见识。我当时第一次接触状压dp,印象也是异常深刻,因为那也是我第一次在赛场上遇到高精度算法。

还有递推,曾经我对递推只能是玄学推,在罚坐五小时的训练营中,我逐渐把握住了递推的奥妙,这种感觉令我着实着迷。

当然寒假少不了CF,因为这个阴间场时间对我来说极度不友好,我的生物钟偏早,不适合学校打这个,寒假就成了我们上分的好时机。我也在寒假第一次达到青色,所谓的初始色。

大抵寒假就是这样,其余的时间不是约朋友出去玩,就是谈恋爱,还有就是打游戏刷视频,毕竟生理需求还是要正常解决。

大一下开始之后,我逐渐意识到学校的课程对计算机系的学生来说是有些落后甚至是过时的。我开始打定决心自学算法,一个大一下,在其他大一学习离散而生疏代码的一个学期里,我却每天都在集训室坚持敲代码补题思考算法,读英语。

在同学还在寝室里睡觉的时候你却要逼着自己早点爬起来去背单词,看算法书,在他们打游戏的时候,你只能耐着性子走出寝室找自习室敲代码。我觉得这才是大一ACMER最大的困难,周围的人不一定在卷,但是竞赛圈子不卷就是被卷。

于是我搬出了宿舍,因为我的学习确实影响了其他人的休息和娱乐。我开始找状态全面学习算法。

我又重新分到了一个队友,不过这个队友跟我组队的时间并不长。

我把数论分给了他,而我负责了他们俩都不愿意负责的数据结构。

先是自己开始琢磨起了oiwiki这个网站里的知识,后来发现oiwiki很多讲的不全,开始学起了wiki,然后英语需求量也在增大。

大约在4月左右,我把数论的算法基本都扫了一遍,但是都是浅尝辄止,因为很多算法是需要时间推导才能学会,我感觉大一已经来不及像我这么折腾,我需要有更多的时间留给别的算法,比如图论和数据结构。

这主要的原因是4月我的昆明站打铁,给了我巨大的刺激。我终于明白了,打过一次铁之后对ACM算法理解更深这句话的意义。

我的那个队友退队了。昆明站也给他同样巨大的打击。

将近5月份,我加入了一个奇怪的算法群,这个算法群说是交流群,不过更多时候感觉是个吹水群。这个群倒是给了我蛮大的帮助。我这人擅长费曼学习,因此在他们问一些基础算法的时候,为了给他们讲明白,我会开始回头自学这个算法,把当初背下来的算法默写出来,然后思考这个算法的底层逻辑是什么。逐渐开始明白了KMP,ac自动机,前缀树,二分,树状数组等一些比较简单但是思维量蛮大的算法。

从这时候开始我的算法算是得到了一次质变,从当初一个学破数学的,正式成为了一个可以打代码的数据结构选手。

这时候的我刷题量已经开始停滞,但是我学习的脚步却没有停下。我开始捡起了DP,学起了一些更加底层的dp思想,我重新开始认真构思dp的含义和效果。逐渐走出了当初对DP的恐惧。

说出来你们可能不信,当初第一次接触dp,就觉得这就是一个玄学算法。

再然后就是省赛拿了个银,虽然是银首,一道签到题赛时被我歪成了金牌题,就离谱了起来。

省赛落幕,我正式进入了考试周。其实讲到这里大家就会发现我基本没提我平时的课程,其实我绝大部分时间都是翘课敲代码,仅仅是考前一两天拿来复习,就足以应付我学校的考试了。

文章洋洋洒洒写了很多,其实有用的干货并不多,主要是记录下自己的学习过程,希望给后来学ACM的零基础小学弟小学妹有一点参考,也希望你们不要被考试束缚手脚。

我学成这样都还是个废物,你又有什么资本不努力就做ac梦呢?

关于一名零基础蒟蒻ACM变强的路子相关推荐

  1. 学计算机excel就很好吗,零基础学习excel小技巧

    零基础转行IT?如今IT行业如日中天,发展态势非常好,可谓是朝阳产业.因此,越来越多的人想进入IT行业,但苦于对it不了解,零基础不知IT深浅,那今天就和大家分享一下,零基础转行it该选择什么方向? ...

  2. 零基础如何学习SAP BI模块

    SAP的BI(商务智能)产品是一个决策支持系统,运行在OLAP环境,包括BW与BO,BW为数据仓库,是对企业的历史数据的存储.对企业的历史数据进行面向主题的分析,支持数据的钻取,可以使决策者更加清晰准 ...

  3. 零基础小白如何入门前端?以下这几点一定是你需要的

    随着近些年前端行业的崛起,前端人才也越来越供不应求.不少人都看到这个行业的巨大发展前景,因此目前零基础开始学习前端的人也越来越多了.那么,零基础小白如何入门前端呢?为了让大家快速入门前端,本文将从前端 ...

  4. 零基础学python图文版-Day2 怎么学 Python?

    一说到编程,好多人就会自我劝退: 我英语不行! 我数学不行! 其实编程很简单,我曾尝试过,在 3 天时间里教会了多名零基础的高中学生,达到了可以在百度的帮助下,根据自己的想法,去编写程序并运行.排错的 ...

  5. 零基础该怎样开始学编程?

    说起这几年最火的行业,应该非互联网莫属,特别是随着5G.大数据.云计算的发展,IT向全行业渗透的速度更是日益加快,薪资水平也是水涨船高,于是很多朋友都想学编程,甚至很多非计算机相关专业的同学也想进入I ...

  6. 零基础如何自学编程?| 程序员有话说

    作者 | 阿文 责编 | 伍杏玲 出品 | 程序人生(ID:coder_life) [程序人生 编者按]很多想转行的朋友会问:零基础我该如何自学编程?作者作为一名文科生,零基础转行为网易工程师,在本文 ...

  7. 零基础如何学编程?网易云高级工程师告诉你方法,不要错过了!

    很多想转行的朋友会问:零基础我该如何自学编程?作者作为一名文科生,零基础转行为网易工程师,在本文中作者分享了自己的学习方法,希望对你有所启发. 很多工作一两年的朋友经常会感到迷茫,尤其是一些在传统行业 ...

  8. IM开发者的零基础通信技术入门(二):通信交换技术的百年发展史(下)

    1.系列文章引言 1.1 适合谁来阅读? 本系列文章尽量使用最浅显易懂的文字.图片来组织内容,力求通信技术零基础的人群也能看懂.但个人建议,至少稍微了解过网络通信方面的知识后再看,会更有收获.如果您大 ...

  9. IM开发者的零基础通信技术入门(一):通信交换技术的百年发展史(上)

    [来源申明]本文原文来自:微信公众号"鲜枣课堂",官方网站:xzclass.com,原题为:<通信交换的百年沧桑(上)>,本文引用时已征得原作者同意.为了更好的内容呈现 ...

  10. 即时通讯技术文集(第5期):零基础通信技术入门 [共15篇]

    为了更好地分类阅读52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第5 期. * 评语:本系列文章尽量使用最浅显易懂的文字.图片来组织内容,力求通信技术零基础的人群 ...

最新文章

  1. [python][jupyter notebook]之菜鸟安装[pyecharts]中Geo或Map显示问题
  2. class() 高级用法 -- lua
  3. 自律到极致-人生才精致:第2期
  4. 自学机器学习、深度学习、人工智能学习资源推大聚合
  5. 说说图片加载不出来_晒晒我的新家,朋友都说好看,恨不得天天宅在卧室不出来...
  6. 前端悬浮窗效果_Flutter自绘组件:微信悬浮窗(一)
  7. dockerfile、docker compose、k8s区别
  8. 给函数传递不定关键字的参数 和
  9. Struts2入门到放弃
  10. XShell多版本存在后门,避免服务器账号密码被上传
  11. bzoj 4818: [Sdoi2017]序列计数(DP+矩阵快速幂)
  12. 因果推断笔记——数据科学领域因果推断案例集锦(九)
  13. DataWorks 数据质量V2.3版本发布
  14. session timer(一)
  15. 无码间串扰的时域和频域条件
  16. ksz8863调试总线,
  17. 创维电视显示服务器异常,创维网络电视,看在线电影及网络异常的处理!
  18. QQ空间相册照片批量导出
  19. 【无标题】【光纤光缆小知识】多模光纤的分类及应用
  20. 2023联发科实习春招秋招内推内推码面经总结

热门文章

  1. 产品经理面试必问5大问题 (六)
  2. 用计算机制作母亲贺卡,母亲节电子贺卡制作
  3. 如何选择工业相机(转载)
  4. html弹性布局什么意思,弹性布局display:flex是什么意思
  5. 读史可以明智_为什么拥抱传统是明智的
  6. 用于创建此对象的程序是 Equation。您的计算机尚未安装此程序或此程序无响应。 若要编辑此对象,请安装 Equation或确保 Equation中的任何对话框都已关闭
  7. 电子邮件协议:SMTP、POP3、IMAP4
  8. WebSphere 安装部署,发布web应用
  9. java spy_Java Spy - 代码跟踪神器
  10. UE4-角色摄像机镜头的设置