对acm一点点改变性的认识

相信很多人都是对编程感兴趣进而才会进入acm这个坑的吧。但是实际上,要在acm这个坑里学出点能力来,我想大概就是两个:自学能力和逻辑思维能力。

先说说自学能力吧。从C语言会一些简单的编程开始,到具有比较扎实的基础功,就像熬汤一样,是一个比较漫长的过程。如果要问需要刷一些什么样的题目,简单字符串处理,模拟,简单数学和贪心。这些题目或多或少刷一些,在你的脑子里就会形成一定的逻辑思维定势了。并且你也会对常见的问题处理驾轻就熟了。但是千万不要高兴,因此从这一步迈出之后,就会陷入一个瓶颈——算法。算法是一个很广泛的概念,ACM算法简要概括就是动态规划、搜索、数论、图论、计算几何、字符串、数据结构这几大类。但是每一类都十分庞大,其实你只要看看国家集训队的论文就知道自己有多菜了。自学算法,理解算法,变通算法,这是不可绕过去的三个步骤。全部都需要自学能力。

其实算法很难,但是入门却是不难的。你会发现要不了多少时间,就能知道这些算法如何使用,甚至可以记住模板了(看起来现在自己已经很高大上了)
但实际上一个人在acm的高度不是学了多少算法,而是对一两种算法掌握有多深。学了没多久你就会发现,如果你不深度学习一两个算法的话,比如动态规划,比如搜索,你就发现,你做的题目始终都只有那几个。再难一点的题目你必须要看题解才做得出来!这就是你和别人的差距!这就是你和别人不同的高度!

接下来就需要说道逻辑思维能力了。这是一个比较抽象的概念,待在acm的人应该深有体会。碰到一个题目,知道是什么意思,可是就是想不出该怎么解决。或者知道用什么算法解决,但是就是想不出怎么实现。这实际上是一个内功性地问题。就像习武之人必练内功,内功不深武功不高一样。在平时训练的过程中一定要注重逻辑思维的培养。这比学一两个算法重要的多。

其实算法就像武功秘籍,武功秘籍有很多,但是武功高的人却不多。这是因为学习武功秘籍里面的武功人很多,也就分了很多高低层次。同样,类比回来,学习算法的人很多,但是也分了很多高低层次。你对算法掌握的如何,就在于你对这一类算法的理解有多深。

我花了差不多一个月的时间给校赛出了八道原题目,其中不涉及算法,很多都是考察逻辑思维能力和对问题的处理能力。我慢慢发现,一个人的逻辑思维能力跟算法并没有必要的联系,你不学算法照样可以逻辑思维能力很强。就像一个不会武功的人内功照样可以很深厚。但是算法却是检验逻辑思维能力高度最好的标准。因为算法难,难在钻研。其实算法并不在于学,而在于深究。只有深究算法了,才能把自己的潜力挖掘出来,才能提高自己的逻辑思维能力。

慢慢摸索了这么久,才明白为什么acm对数学要求那么高。因为只有数学底子好的人,才会有相当的毅力在算法海洋里面刻苦钻研。算法全部靠数学的不多,但是靠这种毅力却相当多。没有毅力,很难再一类算法中有一定的高度。也就很难在大型比赛中取得成绩。

所以,在以后学弟学妹们的学习算法之路上,我想提醒一下的是。学习算法,千万不要贪多。要有毅力有恒心,有足够的钻研精神,在一两类中有自己的独特的高度,这样才是真正地把acm搞好了。

题目数量不在多,而在精。勤于总结,每做一道有收获的题目,就把它写成一篇博客。每一段时间钻研一类算法有一定收获后,写一些自己的见解。循序渐进,就会慢慢提高。

做任何事情都不是那么简单,特别是像搞acm这样如同科研一类的事情,要沉得住气,要敢于挖掘自己的潜力。

加油,写给每一个正在acm这条道路上努力奋斗的人!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值