鞍山现场赛总结

来源:互联网 发布:数据备份的策略 编辑:程序博客网 时间:2024/04/28 18:02
鞍山现场赛总结
从比赛结束,我就想要写一个比赛的总结,暂不论使别人受益,仅对我自己也算一个交代。不为别的,只为以后做的更好。
我参加比赛的次数也不算少,可每次比赛完之后,都没有系统的总结一下本次比赛的得失。或许是失败的不够彻底,自认结果还不错。可是,这次鞍山现场赛,我(们)是真的失败了,彻头彻尾的失败,不是败在算法上,而是败在了团队合作上,另外的原因就是我个人平时的马马虎虎。这些原因导致我们本该过得两道题目没有过,也许是最大的失败了。
首先谈谈赛前的训练。去鞍山比赛前,我们一个队伍没有在一块儿做过什么正式的训练,都是各自刷各自的,就连比赛时候的策略方针都是赛前临时想出来的,并没有一块用过。我不知道这意味着什么,或许可以想象下打仗的双方,一方是平时训练有素的士兵,另一方是临时拉过来的农民,结果可想而知,失败或许是必然的。就我看来,赛前没有训练,那我们就是一群散兵游勇,无组织无纪律,怎么可能取得好成绩?平时的训练组织不起来,一方面的原因是平常我们都没有固定的队伍,都不知道和谁组队,更谈不上组队训练了;另一方面原因是训练时间比较长,有5个小时之多,比较难把所有人聚集起来,题目数量比较多,有10道左右,况且难度也很大,能做出来差不多4道题目,剩下的很难能做出来,最后的大部分时间被浪费掉了,其实还不如把根本做不出来的题目缩减掉,让训练时间短一点,比如缩短到2.5小时,题目数量缩减到5道题目;我想只要解决了这两个问题,平时的训练应该不成什么问题。但要注意,平时的训练一个队伍只能使用一台电脑,可以更真实的模拟比赛。
接下来谈谈比赛期间我们出的问题。我感觉比赛时候出的最大问题就是最后我们三个人把力量分开了,导致在最后一道题目也没有过。我能感受到,比赛刚开始的时候,我们几个人都比较积极,比较有信心,过了两道题目后,接着看下一道题目,想了好久都没有思路,这时,我们就开始不淡定了,想着去看下一道题目,这是人之常情,可是在比赛时,做不出这道题目,通常就意味着做出下一道题目的可能性更低,这种时候,还不如把三个人的力量都集中在一块儿,共同来思考当前的这道题目,三个臭皮匠,顶个诸葛亮,做出来的概率还是比较大的,或许一个人也是可以做出来的,但通常需要思考更长的时间,还很容易陷入死角,这时候就需要别人来指点迷津。或许这适合三个人的水平差不多的时候,而任何一个人都不可能很快做出其他题目的情况,但是,合作总是好的,无论你怎么厉害,不可能一辈子不和别人合作。总之,我的建议是前一道或两道简单题目可以分开来看,后边的题目就一定要一块来看,来思考了。它可以避免好多失误,比如理解错题意了,而且花费的时间也不长,三个人一块探讨一下,应该是可以得到解题的方法的。可这些我们在现场赛的时候都被我们忽略了,能出现的错误差不多都出现了,恰恰最后就读漏了条件,恰恰一个人峻峥想到正确思路的时候,我和王烯在看另外的题,也没有太在意,结果是两题都没过。
我想出现上边这些问题的原因,很大程度上就是平时没有固定队伍,加之训练不足。我想如果要克服这些毛病,就要加大平时的训练量了,特别是组队训练的量,当然前提是把队伍固定下来。
上边是队伍总体的问题,下面我来说下比赛时我个人出的问题。比赛的时候,我是主要敲代码的,四道题目我都敲过,所以有必要总结下写代码时候遇到的问题,以便改正,同时可以让别人加以借鉴。
按做题顺序说下遇到的问题:
第一道题目是简单题,因为平时用惯了int,想都没想就用了int,然后就爆int了,最后换成了double才过,这给了我两点启示:一是写代码前要将基本的题目分析透彻,就如看看会不会爆int之类的;二是,如果结果是浮点数,就尽量使用double,一般的题目使用double是不会有精度问题的。
第二道题目是个dp题,是个二维的状态,很简单,想到状态之后我就直接敲了,边敲边想转移方程,所以就少考虑了情况,经过峻峥指点才找到了错误,改正了过来,这给我启示是,对于稍微难一点儿的题目,一定要先把思路理清晰之后,再去写代码,不然就可能用十分钟写好了代码,用了一个小时调试代码的情况。怎样才算思路清晰呢?最好把代码的核心部分写在草稿纸上,就不会敲错了。除非一开始你的思路就是错的,但这种情况微乎其微。另外需要注意的地方就是初始化,忘记初始化时,往往第一组测试数据是对的,后边的测试数据就有可能错了,建议测试时连续测多组数据,找出潜在的bug,不过还是在写的时候注意,千万不要忘记初始化。
第三道和第四道题目都是王烯看的,第三道题目王烯看过之后很快就有了思路,以为是贪心,写过之后发现不对,就各种修改,还是不对,然后就是我和峻峥在看这道题目了,王烯发现第四道题目是个大模拟题目后,就让我敲了,写过之后交了,不对,然后就一直在调,这期间峻峥一直在看第三道题目,他其实已经有了正确思路,中间还敲过一次,不过是他一个人敲的,也没有过。而第四道题目我又把题目看了一遍之后感觉没什么错误,就是过不了,最后结束后才发现是题目的条件漏掉了,两个人读题都读漏了,也真是粗心至极。
最后做第三、四道题目的时候,我感觉就是团队协作上出了问题,把力量分散开了,哪个题目也没过。说到底,还是平时在一块儿训练的次数太少了。另外我在写模拟题目的时候还是出了bug,在写的时候如果能有一个人看着,就能减少这种出错的可能性,看以把它看成结对编程,调试时候也更容易。但自己平时也要注意,写代码的时候要细心,争取50行之内的代码一遍过,不用调试,100行以内的代码5分钟调试出来,以后慢慢提高要求,相信也可以减少出错的可能性。在比赛的时候还是结对编程的好,不出错则已,一旦出错,就是要命的。
最后值得注意的地方是,写代码人的代码风格一定要好,能让队友比较容易的看懂,不然,一旦出错,调试的时候就很难找出bug来。
以上是我的鞍山现场赛总结,感觉可以尝试着实施一下,死马当作活马医,总比坐以待毙要好吧。
0 0
原创粉丝点击