UOJ Logo matthew99的博客

博客

清华集训总结

2015-12-11 14:08:29 By matthew99

这是集训队作业的一部分。

我从主观条件和客观条件上来总结一下这次清华集训吧。

首先主观上,我有很多该拿到的分没有拿到。

第一天第二题完全可以注意到精度问题,只要注意到了精度问题,很容易发现精度误差会不断变大,然而我当时只是简简单单的把double改成long double看差异,这是十分naive的做法,看着数从整数掉下去又突变回来而我却习以为常,作为集训队员连简单的精度一时都没有应该感到羞耻......充分的体现出我在考场上考虑的东西实际上有多么欠缺。

第二天的第二题,我势能公式推对了,但是由于我用叉积算面积,没有除以二,而后面推的时候我以为它就是面积。物理功底不行的我在考场上更倾向于怀疑自己的物理水平而不是代码能力,最终否定了自己已经推出来的正确结论,这个时候我莫名其妙的以为提答题是全对才有一个点的分,这个错误我在ZJOI day2也犯过,不然应该能超过标准分。原因都是看到了评分规则,但是由于当时并不想做提答题就没管,等到想做的时候却把这个东西抛到脑后了。所以最后1h挣扎T2,当时很着急也不知道在搞什么,最后当然是只有前一个半小时有得分,最后两个半小时一分没得,由于大部分集训队员恰好这天都考挂了并且比我还惨,我意外的没有大崩盘,如果大家这天都发挥正常的话,我第二天结果应该比第四天更差。总之这一天不仅暴露出我写代码时的粗心,同时还暴露出我非常糟糕的物理能力。实际上我物理考出过100分拿40分的好成绩......

第三天前两题写完之后还有将近2h,觉得自己rank1定了,于是慢悠悠的检查前两题慢悠悠的做T3,而且我又!没!看!到!有!部!分!分!,这次很简单,看到“10个测试点,每个测试点1分”的时候,我想,不是每个测试点10分吗,不然这题满分不是10分?实际上这个指的是每个10分的点有1分的部分分,这说明我当时宁愿怀疑出题人也不怀疑自己的理解能力,这是很不对的,因为如果出题人错了肯定会更正,然而我过了一阵子就不记得有这回事了。T3做了很多分觉得自己肯定能标准分,所以最后都是一种做一个点是一个点的态度,慢慢的做,最后看到榜才如梦初醒,发现我T3基本上是全场花了很长时间的选手中做得最糟糕的,花了别人两倍的时间却比大家少十多分。而且提答题也因为自己的一个粗心大意丢了一个不该丢的1分,如果自己当时抱着一种要AC这道题的态度,以集训队选手的平均速度去做T3,应该完全有时间可以在考场上拿到100(99)分。

第四天是我发挥的十分糟糕的一天,然而导致我出问题的原因,却是我一直以来都犯了的错误。这一天我看T1,然后想了很久,想到一个错误算法开始写的时候就发现错了,然而影响了心情,后面时间过得越久人的思维能力就越差,而且对题目整体把握越糟糕,觉得这是一个很难的题,最后搞得只能写暴力,接近3h过去了却只有暴力分,相反其他人基本上都用了我一半的时间拿到了100分。看完T2我整个人急了,T2是整个清华集训中和第三天的第一题并列的最水的两题之一,然而我却2h多才开始看,就想赶快A掉,然而欲速则不达,最后还剩十多分钟的时候过了考场上的全部数据,这个时候我纠结于是否检查前两题,然而当时我觉得第一题拍过,虽然对拍不是很强但是至少还是拍过的,第二题大数据就是极限数据而且应该属于极限数据强度不错,而且当时由于不知道T3是什么题,就赶紧去看T3,生怕T3是一个所有人都会做的傻逼题,看完之后发现根本没时间做就交样例得了一份。接着还剩一分钟的时候发现第二题写错了,当时我完全被水淹没不知所措,完全属于一种GG的状态,考试便结束了,实际上当时只需要加上几个+1什么的就可以了,冷静下来还是有时间改对的。最后排名非常非常靠后,只能靠前三天的成绩保持一个微弱的优势。第四天最大的问题在于没有开场看三个题并稍微想一下,其实我四天都没有看三个题,但是前三题第一题都是我能很快想出90到100分算法的一个题,第四天我却由于失误没有想出来,这直接导致我后两题看的很晚,也导致了我T2做完不敢检查,因为我怕T3是傻逼题,实际上如果T3真是傻逼题,那么我可能这一天真的会把总名次一下子弄得很差了,而且T1在没看后两题的情况下,死磕那么长时间是非常不划算的,如果后两题都是需要很长时间但是花了时间却很好拿到满分或者高分的题,我这场基本上就没戏了,没有合理考试策略是我最大的问题,前三场完全只是运气,用这种高风险的方法恰好没有出很大问题。其次,第一题我想错了方向,整个人陷了进去,思维没有打开,而且由于紧张基本没法打开,如果第一题是在我平时做题的时候见到,那么想出来的概率还是很大的,考试紧张也是我这天的问题。第二题写错,是我没考虑周全,这也是我很大的一个问题,而且,写代码犯小错误的积累导致效率不高,想题的时候容易分心导致的效率不高,我现在无法具体想起来的许多小失误,也多多少少促进了我的滚粗。

因此,这次清华集训暴露了我许多能力的不足,做事太浮躁也是个主要问题,导致我代码写不对或者调太久,而且比较急的时候思维能力也大打折扣,可能也的确导致了一些simple的东西居然没有在考场上想出来。因此,一定要让自己做事更加冷静,更加沉下心来,每次犯错误,不管是多么小的错误,都要注意并且尽量下次避免,甚至具体到某个具体算法或者具体的常用代码的某个具体的地方,有时候一些无关紧要的习惯的积累,最后就是几十上百分的差距。

接着我再说说客观上我对整个清华集训的看法。

清华集训由于有四场考试,当然能很好的体现出每一位集训队员的水平,这次清华集训的分,当然分为没拿到的分和拿到的分,但是我所有拿到的分,却没有什么非常值得一提的,基本都是看完马上就知道怎么拿了,没拿到的分也基本上是自己的粗心大意或者时间的紧缺所致,如果时间允许,大部分的分应该都能拿到。清华集训的分,基本上要么是trivial的,要么就是会某个东西或者做过某个题就能轻轻松松获得,没做过要获得就难得多。清华集训有两个物理题,体现出了物理以及微积分水平的重要性,比如第三天第二题,会了微积分就是一个很trivial的DP,其实国内的DP题一般都是合成题,就是在DP之前还要用一些别的知识点,再比如NOI的最后一题,DP只是一个部分,网络流是另一个部分,难点往往在于你必须两个东西都会,相比之下Topcoder和Codeforces的DP题,一般都是经过一些转化才能DP,或者DP之后利用一些性质优化,或者需要设计一些特别的状态,总之难点在于有些题,可能你根本不会设状态或者转移,有些题可能方程列出来却效率太低,想AC需要一定的水平。其实不仅限于DP,这归根结底反映出一个国内OI和国际上其他赛事的差异,国内的难题,要么都是代码量特别大的,要么就是很多东西合成起来,或者需要对某个特定算法及其优化很深入的研究,而国际上的难题,很多都是代码短小,考点也只有一两项,最终算法可能非常简单并且不需要什么优化,但是却需要对问题很深入的分析,对于这个差异,个人认为两者各有所长,应该相互借鉴和促进。OI的赛制也与其他competitive programming的比赛有所不同,其他的要么就是必须AC一个题,要么就是分为若干个subtask,而国内通过一个测试点就有分,有时候一个无解就会有10分,一个样例就会有1分,而且其他的比赛,有些要求算法每一个地方都不能写错,不然就相当于什么都没做,而国内相对来说比较良心,比如第三天第二题,只要会势能公式,随便写一个三分就能有很多分,NOI的最后一题,只要算法在随机情况下效率不错,就算在极端情况下可能运行时间很长,也不至于只拿到暴力分,基本上花的时间不容易白白浪费,但是也并不意味着什么都不知道乱写一通就会有分。本次清华集训我也看到了很多新的东西,比如大量的交互题和提交答案题,都十分有趣,我也比较喜欢,突破了传统题太多的枷锁,这一方面得益于UOJ的通用性,另一方面也顺应了IOI等国际赛事上非传统题题多的潮流。

评论

mxh1999
前排
jcvb
前排
reb
%%% 沙发?
q846047679
@@matthew99 %%%毛爷爷
zhouzixuan
orz
ydc
orz毛爷爷求成绩
zxozxo
@matthew99 跪毛爷爷
Picks
233其实国内巧妙DP题太少是因为机敏的出题人都不会把这种题放在OI比赛上,“反正没人做的出来”之类的。 还有一方面就是能出出巧妙DP题的出题人太少了,而且巧妙的DP题很需要灵感的~ 感觉DP题是最难出的题啊╮(╯-╰)╭
Cyan
中排跪
OnlyaDouBi
感觉短时间内我国出题难以有大的改观。
sxy_cnyali
@matthew99 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 初一小朋友%毛爷爷

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。