请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于参加ACM等编程竞赛,课程的选择

老师,我现在是一名大二的学生,我想多参加一些编程竞赛。我了解到除了这门课之外你还有还有LeetCode,以及算法与数据结构综合提升这两门课。我想请教一下关于在课程以及刷题这方面该怎么去做

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2020-01-20 17:18:21

首先,你应该认真学习最基础的算法与数据结构。整体,这门课程的内容和我的图论课程的内容,都需要掌握。


在这个基础上,Leetcode 是一个很好的开始。Leetcode 上的问题远远比 ACM 竞赛要简单,但尽管如此,没有竞赛基础的同学,从 Leetcode 开始做,是没有问题的。而且,如果你不参加竞赛的话,基本上刷 Leetcode 就够了。


如果你一定要参加竞赛,对于竞赛级别题目的练习,国内比较权威的教材,就是刘汝佳的这套书了:https://item.jd.com/36399547455.html 这套书的练习量极大。但基本可以说,如果都能刷完,应该能取得相当不错的成绩了。


注意的是,ACM 比赛涉及的范围极广,远远不是算法和数据结构可以涵盖的,还包括诸如离散,数论,图论,计算几何,等等的内容。刘汝佳的书应该算给出了一个大概的范围。对于每一部分,如果对基础知识不熟悉,可以再找专门的教材进行专项学习。


达到一定水平以后,也需要不断地参加比赛练习。算法竞赛级别的 OJ 非常多。我个人推荐两个。一个是 codeforces.com;一个是 codechef.com 每个月都有新的比赛,同时,近乎每场比赛都有题解。


这两个比赛都是英文版的。国内应该也有很多不错的 OJ,比如我上学的时候,POJ 和 HOJ 都不错。但是这么长时间,他们发展的如何,我也不了解了,而且可能也有一些新的后期之秀,对国内的情况我也不很了解。如果你希望在国内的 OJ 练习,你需要自己再调查一下,都有哪些 OJ,哪些 OJ 适合你。


最后,如果你们学校有 ACM 集训的话,想办法去参加。有教练指导,有环境支撑,通常都是事半功倍的。 


我的课程远远达不到 ACM 水平,我的所有课程都是按照面试水平设计的,望知晓。


加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 我是笨笨蛋 #1
    嗯嗯,谢谢老师
    回复 有任何疑惑可以回复我~ 2020-01-21 12:03:37

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信