比赛过程

西安

Part One : 热身赛

  • A题压力测试,测试了评测环境对PE、WA、CE、MLE、RE的评判标准,测试JAVA时遇到主办方Java编译出现Bug,随后主办方调整了JAVA编译参数。

  • B题读错题目情况严重,第二天正赛及时调整了。

  • C题为BZOJ原题,算法过于麻烦,未尝试标解。(热身赛的缘故,暴力可过)

Part Two : 正赛

  • 开场分散读题,未在第一时间找到签到题。看榜单后立刻过了签到题B题。手速一般,此时已经有部分队伍过到了第二题。

  • F题,尝试概率DP/递推无果,猜想结论,过了。此时,此时排名中等,已经能根据榜单找到第三题。

  • H题,线段树裸题写完就过了。

  • 至此,三道签到题全部写完。排名中等,心态良好,比赛进程比较顺利。

  • 确定下一题为G题,对题目分析完毕之后,低估了题目的难度,将其归类为简单题。导致对算法实现的中间细节没有想清楚就开始写代码,中途遇到遇到细节问题时,没有仔细分析大力维护导致越写越复杂,浪费了很多时间,让思路越来越混乱。

  • 写不下去G题的时候,换J题一发就过了。

  • 重新分析题目难度,A题、G题与K题难度相当。G题思路已经明确了一半、K题有思路、A题完全没有思路。确定继续写G题,顺带这思考K题。

  • 对G题中细节问题形式化的方向错误,导致使用了复杂的统计方法统计答案。消耗了较多时间与提交次数,最终对拍通过此题。

  • 由于比赛时间限制,K题有了大致可行的正确思路,未实现。

青岛

Part One : 热身赛

  • A题,B题均为签到题,用其测试了PC^2的各种返回,无问题。CB无法打开多文件并容易闪退,JAVA环境没有配置,电脑经常性卡死。向主办方反应后,第二天均无问题了。

  • C题,Tire树维护。代码过程中手误了几处,调试后AC。第二天正赛中注意了代码手误的问题。

  • 热身赛为未发现问题,状态良好。

Part Two : 正赛

  • 开场寻找签到题很准确,快速过了B题与I题。排名靠前,寻找第三题。

  • 看榜无人过题。读题完毕之后,决定开启C题。经过一番讨论、研究与尝试,无果。

  • 看榜,无人过题,只有THU的J题-1,-2后没有任何动静。判断J题属于中档题但存在细节问题 或者 J题属于难题,THU失误错写J题算法。

  • 继续思考C题,最终得出结论C题并不简单,难度较大,不是前期应该处理的题目。

  • 再次看帮看榜,北京化工大学与浙城市学院过了J题,西北工业大学过了E题,均不是一流强校。猜测E题是套路题,J题应该是原题或者存在性质的题目,代码复杂度中等。

  • 思考J题后并没有思路,看一下榜单发现J题通过人数逐渐增多。分析J题应该有某种结论。于是使用后缀数组+猜测结论尝试通过J题,WA。

  • 继续电脑继续进行J题。同时打印打表寻找G题规律+思考E题。

  • 尝试使用后缀数组+暴力通过,TLE。此时对面队伍疑似使用后缀数组通过此题(赛后对方确实使用后缀数组+暴力通过此题)。

  • J题通过人数继续增加,判断J题是无法跳过的题目,即使能先过其他题目,J题后期也必须通过。且比较通过人数,J题通过可能性远远大于其他任何题目。继续思考后缀数组的解法,尝试若干方法依然无果。

  • 封榜后,J题通过人数已经上天。依然没有任何思路。尝试 牺牲正确性的剪枝+后缀数组+暴力+调参数,经过若干次尝试后通过了J题,比赛结束。

赛后分析

西安题目质量较高,但是大部分题目均为BZOJ通过人数较多原题。在思考题目的速度方面处于劣势,但是问题不大。

西安比赛的主要失误在于低估G题难度,代码前未思考细节问题。导致浪费比赛中有一段时间浪费,并且增加了G题的实现难度与AC难度。导致后期想题和写题的时间不足。

G题的失误不仅在于低估了题目的难度,而且在于比赛战术上的不足,长时间占用电脑写一题,不仅会拖慢比赛的节奏,而且能暴露算法实现中存在问题,应该立刻打印代码换题 或者 重新针对题目进行讨论。

同时,西安比赛中,开题的节奏也有一点慢,几乎是过一题再开下一题。考虑以后的训练和比赛中前期和中期都保持各自读题,交流思路的状态,从所有可写的题目挑希望最大的实现。

青岛赛区题目难度较大,区分度非常糟糕,适合手速快的刚学C语言的新生。开场手速较快。但中后期因为J题,完全崩盘。

比赛中使用暴力冲J题的时候,由于使用的方法不够暴力常数较大,被数据卡了,TLE了。从此否定了暴力算法,本场崩盘。高估了大片通过J题队伍的实力,导致没有选择最朴素的暴力算法冲J题。以后比赛中应该分析的更冷静。

训练反思

  • 平时训练紧张度不高,容易陷入看题过题的单线程做题模式,导致模拟训练的效果不好。

  • 平时模拟训练赛时使用套题的质量较高,导致应对恶劣赛区的能力不足,导致对于劣势局的应对策略不佳,容易造成在劣势局单线程死锁。

  • 应该适当缩减训练套题的总用时(比如4.5小时一套区域赛题目),提升训练的紧张程度和写代码的手速。为正式比赛后期创造机会。

  • 所有人应该提升刷题效率,提升算法表达能力

  • 忽视了BZOJ上的刷题,对数据结构和套路题的熟悉程度降低了。对代码题和复杂数据结构复合的题目,有一些写不动+不愿意写。

战术研究

  • 提高读新题的优先级,比赛前中期应该保证全部题意都已经明确。且每道题需至少有两个人确认题意正确。

  • 上机之前做法需得到队友确认,一道题目只有讨论清楚才可以上机。

  • 当发现题目不会做但是过了一片时应冲一发(最朴素的)暴力

  • 写题超过半小时应考虑重新想题或者换题。

  • 细节、公式等在上机前应在草稿纸上准备好,防止上机后越写越乱

  • 中后期想题与写题应该结伴进行,防止走上歪路浪费时间。

  • 正式比赛前一天晚上不要写题,容易限制思路。

赛区出题人是否负责很重要

AHdoc

发表评论

电子邮件地址不会被公开。 必填项已用*标注