ACM为啥子这么难?怎么才能搞好它?

       ACM这场被誉为“聪明人的比赛”令不少人汗颜!到底ACM为啥子这么难呢?自我加入校ACM已经快一年了,我也没觉得ACM只是聪明人的比赛。而我智力平平,也能搞个差不多,ACM主要靠的不是智力,而是毅力!!!只要你不是笨的出奇,并且会计算机语言,你就能搞ACM

首先问一下各位为什么要搞ACM,搞一个东西总得有目的吧。有人说是兴趣,有人说是大学无聊找事干,有人说是为了以后对于其它软件方向更好的学习,也有人说为了开发智力,更有人说是为了找虐(这个就不理解)。而我一开始搞ACM是因为大学毕业之后去个大公司(目前是想去百度),找个给力的工作,拿个五六位数的月薪,过个小康日子,幸幸福福的敲上这么几十年的代码。但是现在我发现我越来越离不开ACM了,不仅仅是为了以后的生活,嫣然已经变成一种爱好,一种兴趣了,成为了我生命不可分割的一部分。好了,有了目的,就有了动力,有了支撑,就可以搞了。

那么ACM为啥子这么难呢?ACM不难就不叫ACM了。我认为ACM主要考察一个人的这些方面:首先最重要的就是毅力,没有毅力的人就别搞ACM了,除非是天才;然后它还考验一个人的逻辑能力,编程嘛,就是来解决问题;最后就是智力,天赋因素了,干任何事情都需要天赋的,你不能找刘翔去游泳,找菲尔普斯去当总统,找奥巴马去跨栏,这些都是行不通的。好了,只要你能够具备这三点,就可以搞ACM了,要搞到个什么程度,就在看你了,如果你每天拿出五个小时来搞它,差不多的人两年变小牛,四年成大神。如果你一天除了睡觉,吃饭,都搞ACM,那么一年变小牛,两年成大神。小牛就是区域赛的水平,大神就是final的水平。这已经是很高的水平了,而我搞了一年了,依然水的不行,菜的成鸟了,离着小牛还有不少的距离,当时有人叫过我大神,我当时就那想你把大神跟菜鸟弄混淆了吧。

既然ACM这么难,为啥子还有这么多人搞它?没有人愿意干出力不讨好的事情,搞ACM要出很多力,但是还有这么多人搞,原因当然是它的好处值得你这么做了。作为一名计算机学院的学生,学习计算机什么最重要?算法最重要,既然算法这么重要,平常不上算法课吗?答案是上,既然上,为什么还要搞ACM?原因就是上的是课,而搞的是ACM。通常来说在大学上一门课,一部分是掌握知识,一部分是应付考试,不挂科。作为一门课程,我是这学期学好了,如果不复习的话,就会很快就忘了,跟没学差不多,就多认识了几个新计算机名词而已。而搞ACM则不同,不需要复习,也不需要应付考试,只要平常经常多做几道题,多学学算法就行了,比上课管用多了,最重要的是它研究的比课程要深得多,更能启发人的思维。搞ACM更容易进大公司,当然前提是你得有所成就,获得一定的奖项?要不然你去应聘的时候,你只说你是搞ACM的,空口无凭,别人也不是傻子,也不会轻易相信。据不确定消息统计,如果能拿到省赛的金奖,就能进济南最大的公司,银牌,铜牌一般也能进去。如果能拿到区域赛银奖就能进百度及各种给力大公司,world fianl更是没得说,不过这个确实很难。如果没有获得奖项,你有实力也可以,昨天还看见网易的一道面试题就是网络流的求割点,那些没搞过ACM的又有几个能做出来,而且其余大公司面试题也大部分都是平常Acmer做的题。如果你嫌大学毕业就去工作太累,想去考研,搞ACM没用,那就错了,如果小有成就就会获得高校的英雄帖,英雄帖是个毛玩意,相信大家都懂得。ACM有着这样那样的好处,才会吸引着这么多的人去搞它。总之,搞ACM就三个字:嗷嗷叫!

ACM这么嗷嗷叫,那么现在到了最关键问题,怎么样才能把它搞好。语言是最重要的基本功,最起码你也得把C语言或者C++学好。对于刚入门的Acmer要先多刷水题,这样能够提高你的逻辑能力和思维的严谨,还能在初期暴露出你的错误,一开始错的多了,以后就错的少了。推荐做HDU的第11页,那一页大部分都是中文的水题,简单易懂,容易上手。好了,当你刷了5,6十道水题了,有了一定的基础了,就开始学算法吧。学算法的时候不能只是刷题,还要读算法书,毕竟高尔基那句话说的好,书籍是人类进步的阶梯。那么时间要如何搭配呢,我认为读书和刷题的时间比例是1:3。不读书,只刷题,算法理解不是特别深,只刷题,不读书,更是纸上谈兵。那么推荐几本好书,初学算法的话,刘汝佳的那本《算法竞赛入门经典》比较不错,一共225页,还有哈尔滨工业大学出版社出版的那几本算法书,都比较基础,都能看懂,比较好。当你算法有一定基础了,就可以看刘汝佳的那本《算法竞赛训练指南》一共511页,还有刘汝佳的黑书,都比较难。个人认为学算法,要以搜索,动态规划,图论为基础向外延伸,这三个是算法基础,这三个学得深了,学其它算法都就好说了。当然在学算法的时候,也要开拓思维,毕竟也有不少题不是难在算法上,而是难在推理上,如果给你一道网络流的题目,你怎么看都像是搜索,那么这样你网络流学得再好也是个0。在ACM中,数学占据了举足轻重的作用,数学这个部分涉及范围广,难度大,包括离散数学,数论,计算几何,线性代数,概率论,解析几何,高等数学。数学是一切的基础,由此可见数学对于搞ACM是多么的重要,所以平常一定要多做数学类的题目。简要说一下我理解各个算法,搜索贵在优化,动态规划贵在动态转移方程,图论贵在建图,总之所有算法都要多练,多想,多理解。要搞好它一定要有毅力,知难而上,遇到难题,不要一上来就从网上找代码,一定要自己先想想,实在想不出来,在到网上看牛人们的思路。

给大家推荐几篇有意义和幽默的关于ACM的文章《论ACM与泡妞》点击打开链接,《搞ACM的你伤不起》点击打开链接,《算法为啥子这么难》点击打开链接,《关于ACM转载很多的一篇文章和对dsh神牛的感想》点击打开链接,这些都比较好,值得一看。

推荐几个做题网站:HDU点击打开链接 ,POJ点击打开链接, ZOJ点击打开链接, UVA点击打开链接, LA点击打开链接, codeforces点击打开链接

以上纯属自己理解,若有不合理之处,希望指出以便及时改正。

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值