[存档]xx09210xxx2010ACMICPC竞赛总结

存档作对比。发现完全没进步啊,真惭愧。

====

ACM-ICPC亚洲区预选赛

分区赛竞赛个人总结

2010年赛季

一.个人训练情况

1.训练的数量与质量情况

做题总数:

231=128(BuptOJ)+13(PkuOJ)+39(Ural)+17(HduOJ)+7(UVa)+7(TjuOJ)+20(ACM-ICPC Regional原题)

题目分类:

    杂题(50左右)

        水题

        模拟

    dp50左右)

        最优子结构/子问题

        递推、分治、矩阵乘法

        树型dp

        状态压缩dp

        单调性/凸性dp(仅做过单调队列、四边形不等式)

    搜索(10左右)

        广搜搜索杂题(各种迷宫题)

    数学(40左右)

        数学杂题

        组合数学

        数论

        矩阵/高斯消元

    图论(50左右)

        最短路

        最小生成树

        二分图匹配(只会匈牙利算法)

    计算几何(20左右)

        计算几何杂题

        扫描线

参加网赛:

浙大月赛(ZOJ Monthly 2010-08,09,10)

Topcoder(SRM 484 Div 2,485 Div 2)

2.个人能力的特点的演进

在比较考想法的杂题、dp题与图论题上相对有优势。数学题有优势。

对于想法题的擅长(特别是dp题),主要来源于高中oi的训练。dp是高中oi的重中之重,因此也了解了各种dp模型及其变种,做到能快速地根据问题写出状态表示。另外,《算法艺术与信息学竞赛》上也有很多想法题,对于这类题目,不一定要写出代码,但是对其不断的思考与推敲很有益于思维的提高。

对于数学题的擅长,主要来源于高中参加数学竞赛的经验,以及个人对于数学的爱好(坚持看北大理院的数学教材)。

3.训练体会

思路方面:

发现了逆向思维的妙处,“倒过来做”很多时候是个很棒的设想,能迅速地简化问题。掌握了化归思想的应用,将一个未知却似曾相识的问题通过转换变成已知的问题。

理解力方面:

提高了英语阅读的速度,能够快速抽出题目的数学模型。

解题技巧:

学会了通过数据规模(客户需求)来猜测算法与预估时空复杂度。

 

二.平时训练情况

1.个人训练情况

个人训练阶段:

a.水题阶段,主要用于熟悉c++语言及其与竞赛有关的一些函数。

b.数学,dp与基础图论题阶段,数学是acm的灵魂所在,dp与基础图论题有助于拓宽解题思路,为进一步的学习打下基础。

c.算法系统学习阶段。

d.训练赛实战阶段。

3与4是交替进行的,但是很遗憾的是,由于我进队较晚,3阶段的基础算法并未完全学完。

解题效率对比:未记录具体数据。

主要训练网站:

BuptOJ:难题不少,水题也不少。功能还不够好,没有specail judge。

PkuOJ:很多经典题。有些题目描述不太好(作者英文水平……)

Ural:题目描述与数据都严谨,很多题目很有思维挑战性,但又不是太难。非常好的一个oj。同样是很多经典题。

Uva:很多正式比赛的题目。

2.组队训练情况

每周平均训练时间:

6小时左右,但基本集中在节假日,平时很少聚在一起训练。

参加网赛:

浙大月赛。

分工情况:

读题为3人平分。我负责主想与出数据,代码查错,x和孙xx负责刚开始的水题与之后的敲码。依据具体的算法类型有一些小调整,我负责数学、图论杂题与部分几何,马x负责数据结构与字符串,孙xx负责网络流与部分几何,dp由我和孙xx合想。基本上从十一集训后就保持这样的模式。

组队模式成效讨论:

这样的模式优势明显,缺陷也明显。优势在于,如果除我以外的两人不被较简单题卡住,我也能较快理清中下等题的思路,接下来我主想,两人补充细节,合力做中难题,那么我们将面对一场顺风局,因为我们队思维强度是很高的,并不惧怕难题(做以前区域赛的时候有多次出较难题的经验)。缺陷在于,如果另外两人被卡题,而我又恰好遇到细节比较繁琐的题目时,由于我的数学性格——过于严谨和谨慎,会导致钻牛角尖或限制队友思路的情况,这样我们队就会面临十分被动的情况。当然,平时训练时这两种情况很少同时发生,但是在正式比赛的高压之下,就不好说了。

3.团队训练体会

队友不同的思考方向经常能够开拓我的思路,并且避免钻牛角尖走死胡同的情况发生。希望队友的思路不会受到我太多的干扰(因为往往我想的比较快)。

 

.网络预赛情况

1.几个赛区网络预赛题目与本队的适应情况

哈尔滨赛区:

实在太乱,没法说……

天津赛区:

比较中规中矩的一套题,也是和我们队契合度最高的一套题。题目描述比较简洁规范,类型偏重于数学,几何与图论,注重对想法的考察,不卡细节。这正好契合了我们队数学功底较好的优势,避开了对细节把握较慢和不全的劣势。很遗憾的,还是由于细节上的失误导致有两题没有过(一题由于积分算错,一题由于编码小细节)。通过本次网赛,我学到了acm中很重要的一个方法:二分答案(有两题都用到了这个思想)。这个不太“循规蹈矩”的方法在实战中非常有效。

成都赛区:

比较难的一套题。考察了数学(递推思想)、图论、模板与打表。算法覆盖面比较广,且考察了一些比较偏的算法,注重对细节的考察。我们队由于算法面不太广,发挥一般。在这场比赛中有一个部分打表题,我们队由于没有经验,导致被卡。很遗憾的,这个悲剧在天津现场赛又重演了。

杭州赛区:

杭州区的题目,确实有传说中final的风格,不知道是北大出的还是浙大出的。题目类型全,算法覆盖面广而不深,需要一些思维技巧,注重对细节的考察,代码量大。对于这类比较“麻烦”的题目(以F题那个很麻烦的dp为典型,天津现场赛也有这类题),我们队由于做题较少,确实不太适应。

福州赛区:

偏难的一套题。这也考验了我们这种新手队在没有board可跟的情况下有没有开难题的勇气。这场由于决策失误(没敢开模拟题)导致发挥一般。题目描述简洁,偏数学风格。比较模板化的题目数据量很大很严谨,需要思考的题目思维难度大且代码量大。对于我们这种水平的队伍,一言以蔽之,还是对于细节的深入考察。但是我们队这点并没有做好。

总结:

今年的网赛题目较之于往年,风格更偏向于final:考察算法覆盖面更广,对细节把握要求更高,对代码量要求更大,尽量规避模板题。题目类型方面,加重了数学和几何部分。

 

.现场决赛情况

1.赛题特点分析与本队的适应情况

练习赛都是水题,没太多可说的。我们队用练习赛测试了下环境及评测机对于极限数据的承受能力。但是,我们忽略了“代码长度极限”这个测试内容,导致正赛重大失误。

正赛比较中规中矩的一套题。题目类型该有的都有,同样比较偏重细节的考察(F题与杭州的F题如出一辙,都是“麻烦”的dp题),并没有刚开始设想的所谓偏数学的高难度的复旦风格,应该说还是偏final风格。唯一与平时训练有点不同的是这套题没有水题,导致开始有些乱了阵脚,浪费了1个小时,不过心态并未受到太多影响。

2.本队网赛成绩分析

A题与E题是考察编码细节的较简单题,虽然这并不是我们的强项,但很幸运的是我们并未被这两题卡住。D题是个很简单的递推题,事实上是最先想出算法的题(大约在半小时就出了算法),但由于高精度问题,始终tle,反而影响了心态。最终剩2小时时决定赌D题,但最后也没有解出来。没想到大部分队伍是交表过的,而我们考虑到了交表,分析了表的大小觉得太大(1M左右),不敢交。这里我必须自我批评下,是我过于谨慎的“数学式”性格限制了整个队伍的发挥。B与I题网络流,网络流部分是我们队的软肋,没有去碰也没话说。赛后想了下发现并不难,只不过我们队对网络流实在不熟悉。鉴于网络流是必考题,接下来我们队肯定是要花大力气来训练网络流的。J题数据结构,代码量大,没做。

3.其他学校的成绩情况

观察了周围的几只队伍。虽然学校名气都不太大,但是论经验却远远超过我们。也许我们可以比他们想得快,但是很难比他们过得快。这只能说是训练量上的决定性差距——他们的基础训练远比我们扎实。

4.现场赛后的感言

外校好强啊!北邮要再不努力就要被甩在后面了啊……

我觉得,论思维深度,北邮绝对不输其他学校,甚至跟某些一线学校有得拼。但acm是一回事,acm比赛又是另一回事。比赛是个很功利性的东西,其实和高考并没有多大差别,想出来和过题完全是两码事。过题追求的是效率与准确性,如同高考追求的是在最短的时间里拿下最多分。这就要求扎实的基础训练与丰富的做题经验,这点是我们目前所欠缺的。

 

五.个人的小结

1.本人总结性结论

优势:

作为团队主想,见过题目类型多,思路较开阔,能想难题。数学功底好,有数学灵感。非常注重算法细节与严谨性,能写出伪码就能保证极高的ac率。

劣势:

a.有时过于谨慎,片面追求算法严谨性,导致钻牛角尖,牺牲了比赛效率。这需要靠多考察一些比赛题,掌握一些acm技巧(比如打表对照)来解决,同时修正过于依赖自己数学能力的性格缺陷。

b.编码能力不够强,在需要敲码时会浪费一些机时,同样是牺牲了比赛效率。这个只有靠多做题来解决,别无他法。

c.思路受限时不太容易绕出来,容易误导队友。这个需要靠队友的提醒来规避风险。

2.本人未来的设想

对于明年计划,肯定会继续参加接下来的训练与比赛。而且,我们队已经拟定了一个从夯实基础到提高的长期训练计划。

对于个人训练,根据自己思考多但实践少的特点,打算在补完基础算法面的漏洞后,通过多做个人比赛(比如topcoder等)来锻炼编码能力,同时深入研究dp、图论与数学类题目。这样就具备算法广度与深度两方面能力了。

 

六.建议与意见

1.对校赛的建议

无。

2.对平时训练的建议

希望能够定期举办专题练习赛(我的高中是每周一次),既能夯实基础,铺开算法面,也能增强实战能力。平时训练比较枯燥,而比赛比较有趣味性,赛后有共同话题,也方便大家聚在一起讨论。

这里提一下我高中的训练模式,非赛季学期,每周一场由一个人命题,办专题练习赛,用于铺开算法面打基础。赛后由过题的队员讲算法,写解题报告并贴在wiki上(当时我们搭了个wiki服务器,个人感觉比现在的ftp组织形式好的多)。赛季学期做综合训练。

希望房教能关注一下这个高中oi的训练模式并咨询下莫梓元学长,我想还是有一定参考价值的。

3.对老师的建议

希望老师在选择带队负责人时候能多考虑下。队长不一定要是比赛实力最强的人,但一定要能担负起指导下届训练的责任。由于本届队长不太负责,我们大一暑假的训练非常没有目的性,浪费了一个暑假的时间。

4.对推广ACM文化的建议

这一点我非常苦恼。acm因为其所体现的算法与数学的优美性而深深吸引着我,但是这种优美是必须下苦功来深入训练后才能体会到的,因此常常让很多人望而生畏。而且北邮的学术氛围不是太好,大家的功利心比较重,我也想不出什么好办法在校园推广acm文化。目前看来只有多吸引一些热爱编程的同学。

5.对教学内容改进的建议

无。

6.其他的建议

无。

原文地址:https://www.cnblogs.com/jffifa/p/2305992.html