前言

很高兴同学们能够加入hai-AcWing!如果你是计算机专业的新生,想要锻炼实操能力,提高自己的写代码水平,感受计算机的魅力;或者准备找工作,在刷leetcode题;或者正在准备保研,准备参加算法比赛加分,加入AcWing算法社区学习一定可以帮到你!

先修知识

学过先修知识的同学,可直接跳过此部分

想要开始算法竞赛的学习,需要先完成两门先修课程,即《C++程序设计》(可用其它语言代替)和《数据结构》。经过验证,未学习这两门课直接上手做算法题效果并不理想。

而这里所提到的C++,本质上就是C + STL,并不包括面向对象的知识。因为算法竞赛属于面向过程编程,所以主要的任务就是掌握C语言及STL容器的使用。

C++推荐学习:

数据结构推荐学习:

掌握以上的知识后,就有了写算法题的能力。但理论知识的学习,到你真正会写代码,写好代码仍有一定的距离。

例如学过先修课的同学,现在是否能现场写出快排Dijkstra等基础算法?并规定时间内调试通过

算法

平台选用

在学习算法的过程中,前辈们探索出了一种较为科学的学习方法——学+练+赛

基于以上三点,我们在比对了各个不同的OJ平台,其中包括了acwing,洛谷,leetcode,牛客网等等,发现acwing最符合我们对一个优秀OJ平台的预期,理由如下:

  1. 好用、易用,零延迟判题,不用开通vip加速判题(某lc:战术后仰 );
  2. 每周平台上固定有一次周赛,难度适中;且可以在平台内部自定义举办比赛(即将上线);
  3. 拥有校园功能,可以把一个学校的同学组织起来。彼此之间可以看到学习记录,互相促进。(算法的学习不应该是单枪匹马,因其难度较高,需要几个同学一同学习。一个人的难题,在集体里可能就不再是难题

综上,我们选择了AcWing这一平台

平台注册

acwing平台网址为www.acwing.com

点击此处跳转,进行认证注册

  1. 填写用户名、密码、邮箱,进行注册
  1. 进行实名认证
  1. 进行学生认证,填入邀请码(录取通知书,学生证,学信网截图等都是可以的,认证这一步后,即可进入校园功能)
    邀请码:JVQJU

至此平台认证完毕。(成功注册的童鞋,可私聊下群主

算法学习

大二、大三的同学可直接来到这步。正如前面所说,在学校里理论知识可以拿到很高的绩点,但距离我们写出好代码仍有一段很大的距离。所以才有了我们做这件事情的意义。

  1. 从未接触过算法题的同学可从语法基础课开始学习
  2. 学习算法基础课,完成对应题目及练习。时间充裕的同学,可进一步学习算法进阶课(但一般都不充裕,要挑着看);
  3. 在完成前3章的学习后,就能够处理很多数据结构及算法的题目。这时可以在学习过程中边练天梯赛上的题目,按分值从小到大练,分题型练,点此跳转
  4. 如果想打蓝桥杯,需要接着学习完4-6章,尤其是贪心和动态规划。同时学习蓝桥杯课程,做蓝桥杯真题;
  5. 参加每周acwing周赛,一共3题。在熟练掌握语法的情况下,能够快速解完第一题;学完算法基础前3章,能够求解第二题;第三题视具体情况而定。以此来检验自己是否学到位了。能做出来是一回事,能不能在规定时间调试出来又是另一回事。

同时,在群文件-算法中,已上传各代码模板等实用材料,需要熟练掌握

结语

在计算机技术日新月异的今天,大多数人多多少少都会写一点代码,但懂算法并能用好的人却并不多。学具体的某项技术可以以周为单位,但像数学、算法的学习,要以月甚至年为单位,所以学习的先后孰轻孰重就很明显。如果能啃下算法,对于其它专业课的学习会非常的有帮助。并且快速掌握一门语言,最好的办法就是用它来做题。

本人有幸参加了今年的推免,其中北航机试给我印象最深。如果能早点开始算法的学习,或者去考下CSP,可能结果又会不一样……

致谢

感谢群里各年级同学们的加入及支持!