ACM滚粗总结

作者: kevin66654 | 来源:发表于2016-11-24 15:29 被阅读1154次

ACM有什么用


从功利的角度上说,ACM是有用的:可以算作竞赛,拿到了奖可以加分;对于有着自己职业规划的计算机(很多非计算机的)dalao来说,摘金夺银进WF,是打开谷歌、百度、阿里等公式的好的一块敲门砖。对于我这种大四还在打铁的小垃圾来说,ACM教会了我什么?学到了什么?

提升自我的思维,ACM是很有用的:博弈论、数学思维,很多题目考察的是读题能力和思维能力(比如CF的div2的ABC题,一般都不会涉及算法),思维是自己的,不要总是被各种框架所局限住。

提高分析能力和建模能力。如果说简单思维题是铜牌银牌题目的话,那么所谓的中档题就是银牌金牌题了。根据自己学过的算法和数据结构,根据题意,来对应上各种框架和模型,分析综合能力是不可少的

提高英文的阅读能力。说实在话,除了ACM和学校布置的作业和听英文歌,到了大学真的没有好好的学过几分钟英语。把英语当作一个可靠的工具,那必须每天坚持有接触,每天去学习,把英语真正当作自己的爱好。尤其对于计算机专业的孩纸来说,英文是必不可少的。需要学习英文文档所介绍的各种软件也好,配置也好来完成自己的工作

如果是计算机专业的同学,ACM是还培养了这样一种能力:debug!错误是程序员职业生涯浪费时间最多的一部分,不可避免的话,就需要程序员来好好的静下来调整。ACM给的环境是在压力下编程:别人放气球,自己wrong answer的情况,逼着自己好好静下心来做题。不要放弃是ACM赛场的最重要的原则,没有之一。

ACM为什么没用


我自己作为一个计算机行业的人,如果不是对ACM感兴趣,其实ACM对我来说,是没有什么用的。很简单:算法和数据结构在写项目之中基本用不到。在我目前对计算机行业的浅显了解之中,需要并且真的需要ACM经历的就两个行当:算法工程师(主要是做大数据和云计算方面的,真正需要去做算法优化,从O(n^2)降到了O(nlogn)是有实际作用的),安全工作者(ACMer写的代码一般为了求快,都是只求自己懂的格式,变量名a,b,c这种太常见了,相当于自己加密混淆了源代码,安全工作者需要从其中来找到某些安全问题,就像CF的Hack环节,自己出Hack数据去找别人程序的问题)其他行业,由于计算机的处理比较快了,我们考虑的大都是如何开发更快,更针对用户,即:面向对象的编程。而python、ruby这些语言的出现,让编程更适用于程序员的功能化。效率什么的,确实重要,但是程序员的第一步想的往往是先实现,先做出来个框架

ACMer的思维是:这个题我应该怎么样以最优的方式去搞(如果时间不优会超时空间不优会爆炸)而且还要好实现(不然wa全场还是不知道哪儿错了)如果在思维范围外面的或者不好写的,或者知道写完之后肯定有bug,就肯定不会去做这个题的

搞开发和打ACM走的完全是两条路子的吧,自我感觉是这样,为什么觉得打了几年ACM,什么还是没学到。因为在工程角度来说,我一个框架都不会,一个语言都不会,学到的算法和数据结构在编程的时候都用不上,也不可能在实际运用之中写一发网络流求一个什么东西对吧

我们应该怎么看待ACM


我仍然坚持自己的那么一点:考试是为了分数,学习是为了兴趣。任何一个东西都是有利有弊,选择上了,不管打什么牌,学到了东西,玩得开心,有了乐趣,比什么都好。引用谷巨的一句话:打比赛不如交友

如何打ACM


可以回到总结的正题上了,作为一个功利的ACMer,我们想的是赛场上拿牌,平时多出题,减少错误的次数和时间,多学习是一部分,技巧和方法也是很重要的一部分

1.首先是认真读题:题目中的每一个单词,每一个样例都要搞清楚是什么意思。不要觉得题目铺垫的废话多就省略几段不看,很多题目坑点就是在读题,在某个地方藏了一句有用的话,不看就GG

2.然后是认真分析样例:像青岛网络流那个题,题意其实不是那么明白:相信有很多数学计算方法去算出那个0.5,但是到底哪一种思路和计算方式是题目中描述的,就必须好好读题和分析样例。其实1和2是读题中的一个步骤:因为我们的惰性,是习惯满足于第一印象的!!!第一印象!!!当你对题目大概看过之后,如果没找到细节,自己YY找到了一种计算样例的方法,而且恰好是对的,很有可能进入了出题者的陷阱,就会不断的去找自己的代码中有没有bug!!!不管代码中有没有bug,都是不可能AC的!!!因为,你看错题了。。。再次强调,读题和样例的重要性

3.怎么1A?与其不断的查bug,debug,还不如一开始就1A(废话谁不想1A)做题的第一个原则是:如果我有细节没有想清楚我不写,如果有边界数据没想好怎么处理我不写(我自己是急性子从来没按这个走过,但是逼着自己这样还是有用的:道理很简单,从全局考虑完毕之后再来考虑实现细节是很快的,尤其是DP!初始化+状态转移就是全过程代码)

4.如果不幸错了(这不是很正常)怎么debug!三个步骤:首先,再次看题意!看样例!确定自己做的题目就是这个题目(没有理解错题意)然后,梳理自己的思维,是不是某个地方在实现的时候,偏离了自己的整体思路框架,而且运气好,过了自己的样例;第三步,如果是wa,那么一定要用数据说话,拿边界数据大数据特殊数据来Hack自己,一般情况下,不要去质疑评测机器,肯定是自己的问题,静下来分析

5.遇到模拟,数学,思维题目怎么办?(江湖俗称XJBG)的题目怎么办?打表也好,猜测答案也好,从样例中推规律也好,总之不要想着一下把答案看出来。拿博弈论来说,赛场上三个人对吧,哪怕两个人真的来玩这个游戏,从小到大,基本能找到规律。对于模拟题(2016青岛B题魔方题)目标一定要准确的追求1A:道理很简单。如果不是1A:我擦,这么简单的题我TM的哪儿错了,然后瞎debug一发然后就会回来继续提交,直到把自己心态打爆炸,要么wa到死,要么wa到过了但是罚时爆炸。与其这样,不如一开始把所有的情况考虑清楚,哪怕考虑1个小时再写,相信20分钟之内肯定敲完了

送给所有ACMer:

ac everyday,at least today.

ac everyday,not only today.

Seize the day.

还有我kuangbin大神的:

ICPC欠所有ACMer一个world final

人一我百,人十我万!追逐青春的梦想,怀着自信的心,永不放弃! 

相关文章

  • ACM滚粗总结

    ACM有什么用 从功利的角度上说,ACM是有用的:可以算作竞赛,拿到了奖可以加分;对于有着自己职业规划的计算机(很...

  • 滚粗

    我不知道自己是谁,应该做什么,好像一切变得不一样了,原来,自己从未真正认识身边的人,所处的社会。 想这些又有什么用...

  • 2017滚粗

    再焦躁,2017年还是过去了,我老是想着2017,你能不能慢点走啊 ,慢点啊。我2017的计划还都没有完成呢...

  • 滚粗福

    每逢学校放假,我一定住在奶奶家。今年寒假,爸爸送我时特别交代:“快过年了,你要帮奶奶干家务活。” 第一个周六的早晨...

  • 第一章第九节 continue和break

    continue: 继续. break: 滚粗.

  • c++ stl

    STL in ACM - To be an ACMan - 博客园 stl 在 acm中的应用总结 - 若流芳千古...

  • ACM总结

    首先对于这次的竞赛结果,没有获得奖项,说实话,有点遗憾,心里有些失落,不过回顾整个历程我觉得收获是大于结果的。在比...

  • 小广告滚粗

    下班,走在办公园区,一低头,零星几张花花绿绿的小卡片,走几步又有几张,身材火辣的美女,已被踩的面目全非。 这些发小...

  • 滚粗吧!浮躁

    社会不断在发展,我们的收入也一步步在上升,但是伴随着这些的是,我们的那颗心却时常处于一种绷紧状态,被这个浮躁的社会...

  • 滚粗这世界

    我在一堆杂乱中无所事事

网友评论

    本文标题:ACM滚粗总结

    本文链接:https://www.haomeiwen.com/subject/kxbbpttx.html