校赛打完,已过四月,该是准备背起行囊,踏上考研之路了,自然,得先阔别一下ACM了,想起这几年ACM路,感慨颇多,不得不一诉心肠,与大家分享一下我的ACM历程,如果有人能从此文获取一些益处,那我就很欣慰了。

如果说作为一个做了快两年ACM的一个ACMer来说,我并不是成功的,至少在我们学校不是,或者说,是失败的,我说的失败并不是体现在没有得出很好的成绩,而是体现在自己进步的缓慢上。进步的缓慢是可以通过rating图看出来的,现在看着自己的rating图,往往能回想到当初一步一步走过来的艰辛与快乐。对,ACM是辛苦的,但有时快乐的,我想大多数ACMer都是喜欢上了AC之后的快感之后才慢慢的喜欢上ACM的,没有人天生喜欢去做算法题,只要你喜欢,你投入,你就可以获得收获,进步的快感也是令人兴奋的当你发现自己的水平在一步一步地提高后,你会越来越自信,越来越喜欢上这项竞赛。但是,很多事都是符合马太效应的,强者愈强,弱者愈弱,ACM好像也符合这个规律。

我是在大一的时候才知道ACM的,当时还不让带电脑,同学带了电脑,然后突然有一天推荐我上OJ,我当时都不知道OJ是啥,后来在机房上了一下才知道,原来是做题的网站,然后我凭借刚学的C语言写了几道水题,兴趣一下来了,此后,我经常去机房做题,因为在机房带的时间总是短暂的,所以我或者把题记下来,或者是打印下来,在纸上写出代码,再抽时间去机房敲到电脑上运行,再交题,有一些对了,有一些会错,于是还得改,又拿回去改。就这样,一个本子很快就写完了。于是,就这样,我爱上了编程,爱上了ACM。

到大一下学期,傍了一个大三的学长,打校赛,基本是他单挑,不仅进了决赛,还拿了三等奖,我和我一个好朋友当时真的只是端茶倒水读读题而已。当时有一种想强大自己的欲望,于是开始学习很多算法,虽然很多都学得不是很懂,毕竟基础不够,然后就到了暑假集训,跌跌撞撞进了暑假集训,可是还是很弱,于是各种排倒数光荣的被刷了。后来就回家去了,本来可以呆在学校继续跟着训练的,但是感觉还是跟集训队的人融不到一起,没什么共同话题,并且不太喜欢里面的气氛和环境。回家也没闲着,天天组织大家(群里面的)刷水题,开始群里有一个比较厉害的人,也跟我一起刷题,刷了大概半个多月的水题,还学了下数论,但是感觉进步还是不大,唯一的进步就是手速提高了。当时我有一个幼稚的想法:当时的水平只能出CF的A,B两题的,于是我去练手速,争取快速过掉A,B两题,,现在觉得是多么的可笑。至今可以在hust vj上看到我放过的手速场。。

然后开学后本来打算放弃了的,去搞了一下工程方面的东西,可是下半年的一场趣味赛自己做的还不错,又把瘾给勾了起来,到了13年12月份,我才真正开始系统地学习算法,要说我的ACM之路从这里开始的都能说得过去,我的博客也是在那段时间开通的,当时只想开个博客来记录自己的算法学习心得,没想到今时今日,此博客已经成了如此模样,世事弄人。

14年算是进步比较大的一年,这一年学了不少算法,水平也开始见长,顺利的进到暑假集训,然后幸运的获得了区域赛名额,为什么我说幸运,这是有原因的,我在队里负责数据结构和模拟等码农类的题,什么数学啊,DP啊,图论啊,都玩不动,图论还好点,搜索也还行,结果最后一场网络赛,我这个数学若菜,居然推出来正确的公式,然后写了一发,挂了一发,优化再交,过了,凭借这题,我们翻身了,本来是排名末尾的,眼看就要没戏了。就这样糊里糊涂地进入到了区域赛准备阶段。既然上天如此安排,那么自有他的道理,我们后面只好加紧训练了,到11月份,参加区域赛,由于最后一题脑子混乱,居然没看出来一道几何,本来版都带了,于是遗憾拿铜,事实证明,出来混,总是要还的。不过好歹是拿过奖了。

区域赛完以后,就开始松懈了,然后一度没有做过题,最后寒假集训个人赛的时候由于DP真是没入门,导致各种被别人踩,各种排名末尾,当时一度绝望,回家后的集训也是,各种被人踩,在家里看了很久的DP,题做了一点,不是很多,所以还是没怎么掌握。最后来到学校,就准备校赛了,慢慢的,因为自己保研希望有点小,还是选择去考研了,于是比赛,题都没怎么做了,最后校赛成绩也不是很好,就这样,我差不多结束了我的ACM之旅。

纵观我的整个ACM历程,我觉得自己失败的因素主要在以下方面:

1.数学基础太薄弱

初高中以来数学就是很一般的那种,不太会用数学来分析问题,高数更是学的一坨屎。其实,个人感觉这个竞赛拼到底拼的还是数学,数学没那么好的话,智商高也行,不过大多数人的智商应该都差不多吧,所以说,如果你感觉自己智商不是很拔尖的话,那么还是把数学学好吧,不管你搞不搞ACM,只要你是搞工程技术方面的,数学是最基本的技能了。为什么数学那么重要?举个例子,一个贪心,不用数学分析的话可能就靠灵感,感觉怎么贪对就怎么贪,贪错了大不了再来,但是如果你用数学的知识推一下,你就会迅速地得到一个正确的贪心方法,既不浪费时间,又能保证正确率,何乐而不为呢。

2.没有与人多交流,走的弯路太多

这方面是一个比较大的原因,开始的时候一心想着刷水题就是一个例子,对待一个可能不那么容易理解的算法,没有攻克的决心,想着这个难,先学另外一个吧。算法学习也仅限于理解而已,没有能够很好的应用,满足于刷一些模板题就够了,总之就是一句话,中上等的题做得太少,思维锻炼不够,代码能力锻炼不够。其实溯其根本,还是一个不肯直面困难,不自信的问题。

3.浮躁

另一方面就是浮躁了,学东西总是浮在上面,浮沙怎可筑高台。任何一个技能或学科,都像一个金字塔,塔基越广,金字塔尖才能堆得越高,所以,基础才是王道。

虽然我的ACM之路失败了,但是我依然不后悔我做了这件事,不后悔我选择了这样一条路,现在想想,玩ACM的日子依然是快乐的。况且整个经历给了我更多的思考,思考怎么学习,思考怎么做事,思考怎么做人。

如果你是一个正在玩ACM的ACMer,希望本文能够帮助你。如果你不是,并且有你自己的想法,欢迎一起交流。^_^

2015.3.22

ACM失败之路的更多相关文章

  1. QDUOJ ycb的ACM进阶之路 二进制多重背包

    ycb的ACM进阶之路 发布时间: 2017年5月22日 14:30   最后更新: 2017年5月22日 14:31   时间限制: 1000ms   内存限制: 128M 描述 ycb是个天资聪颖 ...

  2. ACM学习之路___HDU 5723(kruskal + dfs)

    Abandoned country Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s) ...

  3. ACM学习之路___HDU 1385(带路径保存的 Floyd)

    Description These are N cities in Spring country. Between each pair of cities there may be one trans ...

  4. ACM学习之路___HDU 2066 一个人的旅行

    Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还 ...

  5. ACM成长之路

    前几天在网上看到,转过来时刻督促一下自己. ACM队不是为了一场比赛而存在的,为的是队员的整体提高. 大学期间,ACM队队员必须要学好的课程有: l C/C++两种语言 l 高等数学 l 线性代数 l ...

  6. ACM进阶之路

    第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码, 因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打 出来. 3.大数(高精度)加减乘除 ...

  7. ACM成长之路(干货) 我爱ACM,与君共勉

    前几天在网上看到,转过来时刻督促一下自己. ACM队不是为了一场比赛而存在的,为的是队员的整体提高. 大学期间,ACM队队员必须要学好的课程有: l C/C++两种语言 l 高等数学 l 线性代数 l ...

  8. 按装parallels tool的失败之路

    这是一篇对于其他人来说没什么意义的博客.单纯的可以被看作是日记. 首先,我想安装parallels tool. 但是照着网上很多教程(如www.cnblogs.com/artwalker/p/1323 ...

  9. ACM学习之路————一个大整数与一个小整数不得不说得的秘密

    这个相对于两个大整数的运算来说,只能说是,low爆了. 只要利用好除法的性质,这类题便迎刃而解.O(∩_∩)O哈哈~ //大整数除一个int数 #include<iostream> #in ...

随机推荐

  1. 设计模式(一)单例模式(Singleton Pattern)

    一.引言 最近在设计模式的一些内容,主要的参考书籍是<Head First 设计模式>,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了 ...

  2. MongoDB固定集合(capped collection)

    固定集合指的是事先创建而且大小固定的集合 . 固定集合特性:固定集合很像环形队列,如果空间不足,最早的文档就会被删除,为新的文档腾出空间.一般来说,固定集合适用于任何想要自动淘汰过期属性的场景,没有太 ...

  3. 文章转载利用border、transparent实现微风

    微风效果预览 微风源码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...

  4. Webstorm常用的快捷键

    WS的常用操作: 常用快捷键(Keymap/Eclipse): 复制当前行: Ctrl+Alt+↓ 向上/下移动当前行: Alt+↑/↓ 删除当前行: Ctrl+D 注释/取消当前行: Ctrl+/ ...

  5. 本地部署arcgis by eclipse

    首次来博客园发帖,从本地部署arcgis api开始吧: 首先还是下载arcgis的api包开始,在中国区官网下载arcgis包: 1.http://support.esrichina.com.cn/ ...

  6. 利用Civil 3D API更改曲面的样式

    如果你需要更改曲面的样式,比如更改等高线的颜色等等,在Civil 3D中,你可以通过在toolspace中选中曲面,然后点右键选择“Edit surface style…”然后切换到“Display” ...

  7. Android自定义对话框

    在android中有自带的对话框,为了美观,很多开发者会使用自定义对话框,如下图: 点击“弹出自定义对话框按钮后”显示如图效果. 首先要自己定义一个xml文件定义自己对话框的样式: <?xml ...

  8. scrollview 图片放大 捏合 瓦片地图 相关注意事项

    就职文博公司要为博物馆做APP 涉及到瓦片地图的编写 在这里总结一些开发中遇到的问题 (将会不断更新 也是学习阶段) 着急写项目的同学 可以直接看code4上现成的瓦片地图代码:http://www. ...

  9. html之file标签 --- 图片上传前预览 -- FileReader

    记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...

  10. android 史上最简单易懂的跨进程通讯(Messenger)!

    不需要AIDL也不需要复杂的ContentProvider,也不需要SharedPreferences或者共享存储文件! 只需要简单易懂的Messenger,它也称为信使,通过它可以在不同进程中传递m ...