ACM失败之路
校赛打完,已过四月,该是准备背起行囊,踏上考研之路了,自然,得先阔别一下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失败之路的更多相关文章
- QDUOJ ycb的ACM进阶之路 二进制多重背包
ycb的ACM进阶之路 发布时间: 2017年5月22日 14:30 最后更新: 2017年5月22日 14:31 时间限制: 1000ms 内存限制: 128M 描述 ycb是个天资聪颖 ...
- ACM学习之路___HDU 5723(kruskal + dfs)
Abandoned country Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s) ...
- ACM学习之路___HDU 1385(带路径保存的 Floyd)
Description These are N cities in Spring country. Between each pair of cities there may be one trans ...
- ACM学习之路___HDU 2066 一个人的旅行
Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还 ...
- ACM成长之路
前几天在网上看到,转过来时刻督促一下自己. ACM队不是为了一场比赛而存在的,为的是队员的整体提高. 大学期间,ACM队队员必须要学好的课程有: l C/C++两种语言 l 高等数学 l 线性代数 l ...
- ACM进阶之路
第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码, 因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打 出来. 3.大数(高精度)加减乘除 ...
- ACM成长之路(干货) 我爱ACM,与君共勉
前几天在网上看到,转过来时刻督促一下自己. ACM队不是为了一场比赛而存在的,为的是队员的整体提高. 大学期间,ACM队队员必须要学好的课程有: l C/C++两种语言 l 高等数学 l 线性代数 l ...
- 按装parallels tool的失败之路
这是一篇对于其他人来说没什么意义的博客.单纯的可以被看作是日记. 首先,我想安装parallels tool. 但是照着网上很多教程(如www.cnblogs.com/artwalker/p/1323 ...
- ACM学习之路————一个大整数与一个小整数不得不说得的秘密
这个相对于两个大整数的运算来说,只能说是,low爆了. 只要利用好除法的性质,这类题便迎刃而解.O(∩_∩)O哈哈~ //大整数除一个int数 #include<iostream> #in ...
随机推荐
- 微软版的SqlHelper.cs类
一,微软SQLHelper.cs类 中文版: using System; using System.Data; using System.Xml; using System.Data.SqlClien ...
- 改进uwsgi启动脚本,使其支持多个独立配置文件
最近在研究flask,在架设运行环境的时候犯了难.因为我想把每个独立的应用像NGINX处理多个网站那样,每个应用单独一个配置文件.而网上流传的uwsgi启动脚本都只支持单个配置文件.虽然有文章说可以把 ...
- csharp: Oracle Stored Procedure DAL using ODP.NET
paging : http://www.codeproject.com/Articles/44858/Custom-Paging-GridView-in-ASP-NET-Oracle https:// ...
- luogg_java学习_05_面向对象(方法和类)
这篇总结断断续续写了2天,内容来自Oracle java8编程入门官方教程和课外搜索总结,希望自己以后返回来看的时候都懂,也希望可以起到帮助初学者的作用. 转载请注明 出自 luogg的博客园 , 因 ...
- [moka同学笔记]关于api-ms-win-crt-runtimel1-1-0.dll缺失
在搞mongodb时候,碰到了这个坑.[api-ms-win-crt-runtimel1-1-0.dll缺失],懵逼不知道怎么改,从同事电脑里拷贝了这个文件,也按照网上的办法改了,改了半天还是不行.最 ...
- Java程序员应该知道的10个调试技巧
试可以帮助识别和解决应用程序缺陷,在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序.但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运 ...
- Hibernate(十)__缓存机制
为什么需要缓存? 缓存的作用主要用来提高性能,可以简单的理解成一个Map: 使 用缓存涉及到三个操作:把数据放入缓存.从缓存中获取数据. 删除缓存中的无效数据. 从上图看出: 当我们去查询对象的时候, ...
- AMD and CMD are dead之KMD.js之懒
缘由 "懒"在软件设计中,有着重大的意义.最常见的两种"懒",便是: 懒得计算 懒得加载 "懒得计算"常见于服务器端: 比如Multipla ...
- 用VSCode写python的正确姿势(转载)
最近在学习python,之前一直用notepad++作为编辑器,偶然发现了VScode便被它的颜值吸引.用过之后发现它启动快速,插件丰富,下载安装后几乎不用怎么配置就可以直接使用,而且还支持markd ...
- IBatis.Net项目数据库SqlServer迁移至Oracle经验
最近完成了一个(IBatis.Net+MVC)项目的数据库+代码迁移工作,可把我折腾得~~~ IBatis.Net是一个ORM框架,具体介绍可以问度娘.我之前没用ORM框架使用经验,所以这一路我不是走 ...