一些傍晚的感想
打ACM这么久了,从来没有今天晚上感想这么多。
该从何说起呢。马上大四了,才醒悟过来时间已经不多了,以前一直觉得时间还多,很多东西可以以后补回来,
但是现在已经来不及了,或者说顿时觉得时间不够了,一边是要顾着考研, 一边又想打比赛,这段时间总在二者之间徘徊。
但我觉得我并没有后悔把这么多时间花费在ACM上,虽然说在比赛上没出什么成果(这可能是比较悲惨的一件事情)
总该有些总结吧。
首先反省自己为什么在ACM这条路上没有走的更远,第一点莫过于还是不够聪明,嗯,借网图一张表达我此刻的想法:
好了,搞笑完了,正所谓逆天而行,但大家看过小说,如果自己基础够好,逆天而行,也未尝不能渡劫,自然是因为自己不够聪明(努力),
想想英雄联盟,魔兽之类的游戏,还有这个小说,再回首,似乎啥也没捞着,大学三年,还是个白金,小说也没写成,魔兽也只会防守图,
说不上后悔吧,只是觉得从前自己的想法太过幼稚,浪费的时间,实际上是浪费了价值。
第二点,从来没有去搞过自己薄弱的部分,好了,再借网游里面的情节,如果你的攻高,血薄,自然你被怪一打就死,但如果说你去加强
你的血量,自然可以扛过去,并且能够反杀。这个薄弱部分指的是什么?自然是说的在一场比赛后,做的很艰难的题,没做出的题可以说
是你的知识量不够而已,做的很艰难的往往都是同一类型的题,但我在这三年来从未总结过,直到最近才明白,为什么做了这么多的题目,
但是水平卡在了中间的瓶颈上,实际上会做的你永远可以很快做出,不会的你永远不会,这也像英雄联盟里,如果你不玩一个英雄,那么你
根本不了解它,即使去强行打排位,也只会坑队友罢了,而对于你熟悉的英雄自然是十拿九稳的。
正如上图的O(N^N),你不会的永远只是个O(N^N),没有人一开始就会O(N)。
作为一个即将过时的acmer一些小小的建议:
当然就是忙着去学,学基础,在我看来,acm只分为三大类,数学,数据结构,算法。数学可以不先去搞,因为比较难搞,首先要去搞定的是数据结构,
极度不推荐在比赛外用STL容器,因为这并不是一个好习惯,极度推荐赛外自己想数据结构去解决问题,这样在比赛的时候,你能快速想到用什么数据
结构去解决,而STL的限制是非常多的,举个例子,STL没办法同时支持以下区间求和,区间删除,区间修改,如果你对STL依赖太多,就如我,一上来
就问自己能不能STL解决,这是非常费时间的,搞好基础的数据结构之后,可以去学一些基础的算法,这里不再赘述,因为搜搜网上就有各类算法,不要着急,
因为你的时间比我多太多了,但也不要告诉自己时间还多(嗯,在下正是明日复明日的那个lowB),首先你可以把这些基础算法对应的一些直接的题目做了,
直接也就是说,裸用这个算法就可以解决的问题。在对这些算法有了大致的了解之后,再去cf,严重推荐cf,因为cf上出了标签,难度的筛选了,这时候你想做
对于某个算法的变形题,可以去这上面自己找题目做,对一个算法大概做10个,我敢保证,你在比赛里再遇到就算写不出来,也知道要用这玩意写。
以上是筑基篇(基础篇)。
当然在做完上述事情后,相信你有了一定能力在规定时间内能够解决cf上div2的前3-4题了,但这不够,因为你的数学不行。数学,仔细想了想,我这个LB只能
推荐一下,建议不要从数论开始,可以先从组合数学或者概率论下手(反正我是只会找规律了,概率我也只会dp),其次再搞数论,当然如果想逆天而行,可以试试
先数论,建议看点数学专业的书(这里建议需要深入学的同学试试这玩意,我试了,然后gg了),高数的话,说实话我打比赛还没见过(其实有的,比方说有个公式可以
代替微积分求二维平面上面那个啥玩意面积来着,但是要精度高一点),最后才是计算几何(经常性差精度,无数坑点)。
以上是金丹篇(提高篇)。
最后的最后,好了我知道我不该水这一部分的,但是我还是想说下,不如试试bzoj,或者把cf上的2500以上题筛出来试试?
以上是提高篇。
另外在比赛上的建议,老师之前叫我写来着,这里再博客里写吧,可能也是大家有时候容易犯的错误。
1.复制粘贴一定要注意检查。
2.无向图,注意你建的数组大小要为2倍。
3.有时候你试试快读说不定过了,但是不建议用,比赛时候会卡输入???但是如果T了,就试试吧,说不定有奇迹。
4.注意数组的清0。
5.注意检查边界数据,极限数据。
6.自己写的调试输出代码一定要删掉,交代码之前要检查。
7.无论这一次你改过的代码你有多确定能过,都要再测一次样例。
说了这么多了,也终于要结束了,再鸡血一下。
但凡热爱,但凡追逐,终有所得。
而我所得的,仅仅只是热爱acm罢了。
好了,祝各位ACMer前程似锦,在下退下了。
综上了,用一首著名的诗结尾:
我好菜呀,
模拟只会猜题意 。
贪心只能过样例 。
数学上来先打表 。
D P 一般看规律 。
组合数学靠运气 。
计算几何瞎暴力 。
图论一顿套模板 。
数论只会 GCD。