存档作对比。发现完全没进步啊,真惭愧。
====
ACM-ICPC亚洲区预选赛
分区赛竞赛个人总结
2010年赛季
做题总数:
231=128(BuptOJ)+13(PkuOJ)+39(Ural)+17(HduOJ)+7(UVa)+7(TjuOJ)+20(ACM-ICPC Regional原题)
题目分类:
杂题(50左右)
水题
模拟
dp(50左右)
最优子结构/子问题
递推、分治、矩阵乘法
树型dp
状态压缩dp
单调性/凸性dp(仅做过单调队列、四边形不等式)
搜索(10左右)
广搜搜索杂题(各种迷宫题)
数学(40左右)
数学杂题
组合数学
数论
矩阵/高斯消元
图论(50左右)
最短路
最小生成树
二分图匹配(只会匈牙利算法)
计算几何(20左右)
计算几何杂题
扫描线
参加网赛:
浙大月赛(ZOJ Monthly 2010-08,09,10)。
Topcoder(SRM 484 Div 2,485 Div 2)。
在比较考想法的杂题、dp题与图论题上相对有优势。数学题有优势。
对于想法题的擅长(特别是dp题),主要来源于高中oi的训练。dp是高中oi的重中之重,因此也了解了各种dp模型及其变种,做到能快速地根据问题写出状态表示。另外,《算法艺术与信息学竞赛》上也有很多想法题,对于这类题目,不一定要写出代码,但是对其不断的思考与推敲很有益于思维的提高。
对于数学题的擅长,主要来源于高中参加数学竞赛的经验,以及个人对于数学的爱好(坚持看北大理院的数学教材)。
思路方面:
发现了逆向思维的妙处,“倒过来做”很多时候是个很棒的设想,能迅速地简化问题。掌握了化归思想的应用,将一个未知却似曾相识的问题通过转换变成已知的问题。
理解力方面:
提高了英语阅读的速度,能够快速抽出题目的数学模型。
解题技巧:
学会了通过数据规模(客户需求)来猜测算法与预估时空复杂度。
个人训练阶段:
a.水题阶段,主要用于熟悉c++语言及其与竞赛有关的一些函数。
b.数学,dp与基础图论题阶段,数学是acm的灵魂所在,dp与基础图论题有助于拓宽解题思路,为进一步的学习打下基础。
c.算法系统学习阶段。
d.训练赛实战阶段。
3与4是交替进行的,但是很遗憾的是,由于我进队较晚,3阶段的基础算法并未完全学完。
解题效率对比:未记录具体数据。
主要训练网站:
BuptOJ:难题不少,水题也不少。功能还不够好,没有specail judge。
PkuOJ:很多经典题。有些题目描述不太好(作者英文水平……)
Ural:题目描述与数据都严谨,很多题目很有思维挑战性,但又不是太难。非常好的一个oj。同样是很多经典题。
Uva:很多正式比赛的题目。
每周平均训练时间:
6小时左右,但基本集中在节假日,平时很少聚在一起训练。
参加网赛:
浙大月赛。
分工情况:
读题为3人平分。我负责主想与出数据,代码查错,马x和孙xx负责刚开始的水题与之后的敲码。依据具体的算法类型有一些小调整,我负责数学、图论杂题与部分几何,马x负责数据结构与字符串,孙xx负责网络流与部分几何,dp由我和孙xx合想。基本上从十一集训后就保持这样的模式。
组队模式成效讨论:
这样的模式优势明显,缺陷也明显。优势在于,如果除我以外的两人不被较简单题卡住,我也能较快理清中下等题的思路,接下来我主想,两人补充细节,合力做中难题,那么我们将面对一场顺风局,因为我们队思维强度是很高的,并不惧怕难题(做以前区域赛的时候有多次出较难题的经验)。缺陷在于,如果另外两人被卡题,而我又恰好遇到细节比较繁琐的题目时,由于我的数学性格——过于严谨和谨慎,会导致钻牛角尖或限制队友思路的情况,这样我们队就会面临十分被动的情况。当然,平时训练时这两种情况很少同时发生,但是在正式比赛的高压之下,就不好说了。
队友不同的思考方向经常能够开拓我的思路,并且避免钻牛角尖走死胡同的情况发生。希望队友的思路不会受到我太多的干扰(因为往往我想的比较快)。
哈尔滨赛区:
实在太乱,没法说……
天津赛区:
比较中规中矩的一套题,也是和我们队契合度最高的一套题。题目描述比较简洁规范,类型偏重于数学,几何与图论,注重对想法的考察,不卡细节。这正好契合了我们队数学功底较好的优势,避开了对细节把握较慢和不全的劣势。很遗憾的,还是由于细节上的失误导致有两题没有过(一题由于积分算错,一题由于编码小细节)。通过本次网赛,我学到了acm中很重要的一个方法:二分答案(有两题都用到了这个思想)。这个不太“循规蹈矩”的方法在实战中非常有效。
成都赛区:
比较难的一套题。考察了数学(递推思想)、图论、模板与打表。算法覆盖面比较广,且考察了一些比较偏的算法,注重对细节的考察。我们队由于算法面不太广,发挥一般。在这场比赛中有一个部分打表题,我们队由于没有经验,导致被卡。很遗憾的,这个悲剧在天津现场赛又重演了。
杭州赛区:
杭州区的题目,确实有传说中final的风格,不知道是北大出的还是浙大出的。题目类型全,算法覆盖面广而不深,需要一些思维技巧,注重对细节的考察,代码量大。对于这类比较“麻烦”的题目(以F题那个很麻烦的dp为典型,天津现场赛也有这类题),我们队由于做题较少,确实不太适应。
福州赛区:
偏难的一套题。这也考验了我们这种新手队在没有board可跟的情况下有没有开难题的勇气。这场由于决策失误(没敢开模拟题)导致发挥一般。题目描述简洁,偏数学风格。比较模板化的题目数据量很大很严谨,需要思考的题目思维难度大且代码量大。对于我们这种水平的队伍,一言以蔽之,还是对于细节的深入考察。但是我们队这点并没有做好。
总结:
今年的网赛题目较之于往年,风格更偏向于final:考察算法覆盖面更广,对细节把握要求更高,对代码量要求更大,尽量规避模板题。题目类型方面,加重了数学和几何部分。
练习赛都是水题,没太多可说的。我们队用练习赛测试了下环境及评测机对于极限数据的承受能力。但是,我们忽略了“代码长度极限”这个测试内容,导致正赛重大失误。
正赛比较中规中矩的一套题。题目类型该有的都有,同样比较偏重细节的考察(F题与杭州的F题如出一辙,都是“麻烦”的dp题),并没有刚开始设想的所谓偏数学的高难度的复旦风格,应该说还是偏final风格。唯一与平时训练有点不同的是这套题没有水题,导致开始有些乱了阵脚,浪费了1个小时,不过心态并未受到太多影响。
A题与E题是考察编码细节的较简单题,虽然这并不是我们的强项,但很幸运的是我们并未被这两题卡住。D题是个很简单的递推题,事实上是最先想出算法的题(大约在半小时就出了算法),但由于高精度问题,始终tle,反而影响了心态。最终剩2小时时决定赌D题,但最后也没有解出来。没想到大部分队伍是交表过的,而我们考虑到了交表,分析了表的大小觉得太大(1M左右),不敢交。这里我必须自我批评下,是我过于谨慎的“数学式”性格限制了整个队伍的发挥。B与I题网络流,网络流部分是我们队的软肋,没有去碰也没话说。赛后想了下发现并不难,只不过我们队对网络流实在不熟悉。鉴于网络流是必考题,接下来我们队肯定是要花大力气来训练网络流的。J题数据结构,代码量大,没做。
观察了周围的几只队伍。虽然学校名气都不太大,但是论经验却远远超过我们。也许我们可以比他们想得快,但是很难比他们过得快。这只能说是训练量上的决定性差距——他们的基础训练远比我们扎实。
外校好强啊!北邮要再不努力就要被甩在后面了啊……
我觉得,论思维深度,北邮绝对不输其他学校,甚至跟某些一线学校有得拼。但acm是一回事,acm比赛又是另一回事。比赛是个很功利性的东西,其实和高考并没有多大差别,想出来和过题完全是两码事。过题追求的是效率与准确性,如同高考追求的是在最短的时间里拿下最多分。这就要求扎实的基础训练与丰富的做题经验,这点是我们目前所欠缺的。
优势:
作为团队主想,见过题目类型多,思路较开阔,能想难题。数学功底好,有数学灵感。非常注重算法细节与严谨性,能写出伪码就能保证极高的ac率。
劣势:
a.有时过于谨慎,片面追求算法严谨性,导致钻牛角尖,牺牲了比赛效率。这需要靠多考察一些比赛题,掌握一些acm技巧(比如打表对照)来解决,同时修正过于依赖自己数学能力的性格缺陷。
b.编码能力不够强,在需要敲码时会浪费一些机时,同样是牺牲了比赛效率。这个只有靠多做题来解决,别无他法。
c.思路受限时不太容易绕出来,容易误导队友。这个需要靠队友的提醒来规避风险。
对于明年计划,肯定会继续参加接下来的训练与比赛。而且,我们队已经拟定了一个从夯实基础到提高的长期训练计划。
对于个人训练,根据自己思考多但实践少的特点,打算在补完基础算法面的漏洞后,通过多做个人比赛(比如topcoder等)来锻炼编码能力,同时深入研究dp、图论与数学类题目。这样就具备算法广度与深度两方面能力了。
无。
希望能够定期举办专题练习赛(我的高中是每周一次),既能夯实基础,铺开算法面,也能增强实战能力。平时训练比较枯燥,而比赛比较有趣味性,赛后有共同话题,也方便大家聚在一起讨论。
这里提一下我高中的训练模式,非赛季学期,每周一场由一个人命题,办专题练习赛,用于铺开算法面打基础。赛后由过题的队员讲算法,写解题报告并贴在wiki上(当时我们搭了个wiki服务器,个人感觉比现在的ftp组织形式好的多)。赛季学期做综合训练。
希望房教能关注一下这个高中oi的训练模式并咨询下莫梓元学长,我想还是有一定参考价值的。
希望老师在选择带队负责人时候能多考虑下。队长不一定要是比赛实力最强的人,但一定要能担负起指导下届训练的责任。由于本届队长不太负责,我们大一暑假的训练非常没有目的性,浪费了一个暑假的时间。
这一点我非常苦恼。acm因为其所体现的算法与数学的优美性而深深吸引着我,但是这种优美是必须下苦功来深入训练后才能体会到的,因此常常让很多人望而生畏。而且北邮的学术氛围不是太好,大家的功利心比较重,我也想不出什么好办法在校园推广acm文化。目前看来只有多吸引一些热爱编程的同学。
无。
无。