文档库 最新最全的文档下载
当前位置:文档库 › 哈尔滨理工大学ACM程序设计竞赛新手入门指引20130701

哈尔滨理工大学ACM程序设计竞赛新手入门指引20130701

哈尔滨理工大学ACM程序设计竞赛新手入门指引

哈尔滨理工大学ACM-ICPC集训队是培养高端和高薪就业人才的摇篮,集结了一群高智商、高素质的计算机程序设计和算法爱好者,每年寒暑假、每学期中间的周末均会组织训练。不论你学什么专业、处于大学几年级第几学期,只要你数学基础较好、热爱编程,欢迎你随时加入!

我们从过去的经验中得出的结论是:学生进入哪所大学并不重要,重要的是他在未来4年中的成长。

——哈佛大学

能够印证上面这句话的实例就是,作为二本的广东工业大学、三本的宁波理工学院的学生均获得过参加ACM-ICPC全球总决赛的资格,并且取得很好的成绩。其实不只是ACM-ICPC,所有学习与竞赛,拼的都不是学校档次,比拼的是学生,既包括生源,更包括学生自己的努力。由学术组织发起的ACM-ICPC 因其公正性和高水平得到了企业界、学术界和高校的认可与关注。国内从三本院校到国家重点建设大学均在开展ACM-ICPC,从某个不知名学校搜到一堆学习资料和学习方法介绍毫不意外,因此本文不再长篇累牍重复去写这些内容。

1、新人起步

如果你不知道OJ上可运行的程序什么样子,可参阅校OJ(https://www.wendangku.net/doc/a37525484.html,)的1000题,对照题意理解Hint部分,并试着将该题代码提交到服务器上去测评。操作过程是:复制G++的代码(C++标准版本)或者GCC的代码(C语言标准版本)样例代码,点击下面的Submit按钮打开代码提交对话框,粘贴后点击Submit按钮,在Online Judge Status页面按F5键刷新查看评测结果,会看到你刚才提交的1000题的Judge Status 为Accepted。

如果你不知道怎么开始和该怎么学,短文https://www.wendangku.net/doc/a37525484.html,/stepbystep.php很好地说明了应如何去解决自己学习过程中遇到的问题。推荐继续展开阅读该文中各链接的内容,感受ACMer的苦与乐。顺便说一句,电子科技大学OJ(https://www.wendangku.net/doc/a37525484.html,)有很多数学思维类题目,是国内ACMer 高手的训练场之一。

杭州电子科技大学OJ(https://www.wendangku.net/doc/a37525484.html,)是国内各知名IT企业组织算法竞赛和国内各场ACM-ICPC亚洲区域赛网络赛的承办地,里面有历年亚洲区域赛真题。有关使用杭电OJ的任何疑问,比如不明白前面提到的Accepted是什么意思,可以参阅https://www.wendangku.net/doc/a37525484.html,/faq.php?lang=chs。关于使用我校OJ的一些限制和要求,可参阅我校OJ的F.A.Q部分。提示:将国内某高校网址中的www换成acm,一般即可得到该校OJ的网址,比如哈工大OJ(https://www.wendangku.net/doc/a37525484.html,)、哈工程OJ(https://www.wendangku.net/doc/a37525484.html,),浙江大学OJ(https://www.wendangku.net/doc/a37525484.html,),北大OJ是个例外,网址为https://www.wendangku.net/doc/a37525484.html,。这些OJ上有很多学习资料可供下载,有很多优质题目供你练习。

现在你可能迫切想写个程序试试身手,但是先别急,需要先解决你程序的数据的输入、输出问题。请在哈尔滨理工大学ACM-ICPC集训队的工作网站(ACM-ICPC@哈理工,https://www.wendangku.net/doc/a37525484.html,/i)的“学习资料”栏下载《杭电OJ-编程入门108题》,关于如何解决输入输出问题,下载界面中已有说明。在掌握数据的输入、输出编程后,可以尝试完成《杭电OJ-编程入门108题》中的部分题目。

在写程序过程中,你可能发现自己对编程语言不熟悉,或者对运算中值很大的数不会处理。即便你自认为程序设计语言课程学习成绩很好,也建议你参考本网站“学习资料”栏中的学习材料,至少阅读《程序设计导引及在线实践》的前两章和《算法竞赛入门经典》(刘汝佳编著)的前4章,学习你所不知道的其他编程入门知识和程序调试知识。

2、菜鸟与水手

在你完成《杭电OJ-编程入门108题》中至少一半题目后,你已经具备了成为菜鸟的潜质。此时你也已经不再满足于做个弱菜,你想有更大的收获。

建议你把前面提到的《程序设计导引及在线实践》看完,并看完《算法竞赛入门经典》的第5-8

章。学完这些内容,你已经可以解决一般非算法类问题,比如排序、高精度运算、递归、枚举、数制转换等等。学到这个程度,你已经从菜鸟级毕业,可以考虑再次升级。

如果你想参赛拿大奖,那还需要进一步学习。学习哪些内容、有哪些参考学习资料、做什么训练题目,尝试用不同关键字检索,百度、谷歌会告诉你结果。ACM-ICPC@哈理工网站的学习资料栏目中《哈理工ACM-ICPC培训资料汇编目录》列出了应掌握的部分知识点,这样的信息在网上能查到很多,链接http://202.197.224.59/bm/result2012.htm中的“新人训练导引”较全面的介绍了参加ACM-ICPC应该掌握的知识点、参考书籍和国内外知名OJ。

我校OJ承担着各位同学ACM程序设计竞赛入门学习、训练和ACM校赛网络赛的重要职责,链接https://www.wendangku.net/doc/a37525484.html,/problems.html中给出了部分知识点的入门练习题目(个别题目稍难)。网上也有很多类似的帖子,比如北邮、浙大的练习题目清单。

实际编程做题是必须的,但水题不是多多益善,在做了一定数量水题锻炼编程基本功、熟悉知识点后,要逐步选择更有难度的题目练习。

真心希望你不要就此止步,成为只会做模板题、水题的水手,你更不能沉迷于水题而成为水神。

3、大牛

如果你已经掌握上述知识点中的大部分,并且能够应用于解决中等难度的题目,那么你已经接近成为大牛。

大牛是各校ACM-ICPC集训队的主力,常常能代表学校参加省赛、亚洲区域赛之类的官方赛事并且能获得大奖。大牛会参加一些名校组织的网络赛,练习省赛中等难度以上的题和亚洲区域赛、各国地区赛的真题。

大牛是这样炼成的:或在实验室打地铺分秒必争地学习,或者熬夜参加TC或者CF与全球算法爱好者一争高低,或者冥思苦想一篇篇深奥的某个专题的学术论文……。总之,他们使出了牛劲,通过牛一样耐劳的年复一年执着、痴迷的学习,通过在实际运用中体会算法的运用和神奇,积累了厚重的算法功底和计算思维、编程能力、学习能力、团队协作能力,成为了令人羡慕的大牛。

认真学习和编程实践的ACMer毕业时年薪一般在10万元左右,经过深入学习炼成的大牛毕业时年薪一般超过15万元。

做题练习或者赛场上,你最希望得到的结果是自己提交的代码能被AC。期待在不断的练习做题AC 之后,你能成为牛A与牛C中间的人,向神牛级人物挺进。

4、神牛

如果本科毕业能够年入超过30万元,应当算作神牛了。神牛不多,但是刘汝佳、楼天城、崔添翼等等都是,还有高中阶段就能获得2-3万美元竞赛奖金的那些中学生,应该都可归为此类了。崔添翼可能是现在已知的工资最高的本科生,据传年薪达百万元。

神牛都很专注,智商也很高,更多的是勤奋。勤奋、注重学习和练习质量,深入思考和研究,全面学习,神牛在2-3年就能练成。没有天生的神牛,一个神牛也不需要10年才练成(那就成精了)!

5、人品

人品是很关键的。认真学习、充实地过每一天会让你感到更加踏实,分享知识帮助队友进步则会带给你快乐。如果你加入了集训队,还要指导、帮助学弟和学妹学习,这其实也是在帮你自己,因为他们可能就是你参加的下一场竞赛并肩战斗的队友。谦虚、勤奋,分享、合作,是你能够取得进步所需的最基本人品。不要害怕学习竞争,在竞争学习中相互提升水平才会使你的天地变得更大,百度、腾讯、谷歌、微软、新浪等IT企业,保险、银行、证劵等各行各业都是你未来的舞台。

在长期的学习过程中,可以按照阅读本指引的做法去打开链接阅读资料、逐步展开深入学习,学习资料包括各专题书籍、互联网帖子、博客、学术论文等。

请享受接下来的几年里深入、全面学习的乐趣!

相关文档
相关文档 最新文档