2021.8.9第一场模拟赛心态炸裂记

题面无。
主题是搜索和枚举专题。
一,问题总结
(1)审题
我真傻,真的,我单知道题面会告诉有用的内容,没想到pdf文件的标题才是关键
总之不管什么内容都要好好审一下吧(虽说正式考试应该不会告诉我算法是什么)

(2)时间分配&&做题的顺序和策略 这次翻车的回溯以及心路历程
第一阶段:
我先把所有题都读了一遍(正确示范),发现第一道题比较好做,于是就决定试着切一下(错误的开始)<一方面也是因为出题人说第一道题最简单>

第二阶段:开始试着写第一道题的正解
<1>因为没有看标题,加上第一道题属于字符串的题,且含有“查找某一固定字符串hzwer出现的次数”这个极具kmp特征性的描述,我就认为肯定有kmp
<2>我还发现这道题需要判断的字符串不是通过输入给出而是通过给出一定前后缀(orz和hzwer以及数字),以及给出一定的限制规则,让我们自己构造字符串,我就认为是通过dfs全排列生成序列,(只是把输出序列改为存储在一个结构体数组中)
<3>于是经过一系列神奇的分析,我得出了一个跟正解完全不贴边的做法:剪枝的dfs全排列生成序列,在依次用kmp处理得出权值
<4>写:这是整场比赛我比较满意的地方了,因为我把应当在生成序列之后的判断全部写进了dfs生成的过程中,剪掉了所有不需要的多余计算,算是误打误撞的获得了一次练习剪枝的好机会....
<5>开始膨胀:因为此时比赛才开始1个小时多一点点,而我
“认为”我已经切掉了第一道题我觉得我又行了

第三阶段:代码能力不足的体现&&一个极度愚蠢的决定(花了一个半点给“AC代码”debug)
<1>测了一下样例发现RE了,心态开始有一点不稳定
<2>不断地调试,发现有大问题,结果一直调不通。
<3>有分析了一下做法的正确性和时空间复杂度,觉得自己一定行,于是继续debug
<4>又过了一个半点(是的我真的花了足以做其他所有题部分分的之间debug),心态完全炸了
<5>心态炸了根本看不进去题,灌了一瓶咖啡下去然后还浪费了实际分钟左顾右盼想看一下其他人的进度,发现他们都好快,觉得甚至会有人AK(@fxj,@KH),心态完全炸裂
事实证明比赛时关注别人真的是最蠢的行为,没有之一。
因为事实上结果出来,最高分也才55,快一半人都爆零了,相比之下我至少有分还没那么难看

第四阶段:疯狂补救+反转
在失误+心态炸裂的情况下我已经浪费了考试时间的3/4,只有一个小时多一点让我来完成剩下的所有4道题(我已经放弃了RE的“AC”代码)
觉得反正也崩了还不如混点分已经没什么好怕的了
继续读题,发现第二道题根本不可做(没有类似用左上角的点代表一个矩形来bfs的经验),果断固输-1
发现非常简单的做法就可以解决第三道题前25分(n<=3),直接取所有点里x,y坐标的中位数就可以
发现最后一道题可以并查集解决,直接就上
回过头发现第一题前50分可以用一个类似打表的方法解决,五十分到手

第五阶段:二级反转+再次白给
当我完成最后一点暴力分时,已经就剩10分钟了
我手真的在抖
觉得整个人都要升天了
然后提交前顺手把第一题的数组名改了一下(究极错误示范),
然后自信的觉得改个数组名不会影响什么再次觉得已经没什么好怕的了
我甚至没有再把程序编译一下。。

第六阶段:最终回+还算可以的结果
战绩:T1:0分 CE了flag回收了
T2:10分 预料之中,毕竟只写了固输,在有多组数据的情况下已经算是rp++了
T3:0分 WA 情况考虑不充分
T4:0分 RE了????我人麻了,少了一个判断竟然是RE
tot=0+10+0+0=10已经没什么想说的了。。。。。
好的地方是有分而且排名还可以

总结:
(1)比赛不是平常的练习,平时习惯了有充足的时间,愉悦的心情,和课上的讲解以及题解的提示。练习诚然要追求完美,但是考试需要的是灵活、随机应变、合理的时间安排以及反正我就这水平还不如多做点的奇妙心态
总之就是
<1>先阅读所有的题,尽量把确定以及肯定能切的题放在后面,先把能贪的部分分全部拿到手(估计也用不了太多时间,毕竟一眼看不出来的到最后估计也就写个部分分,再说了先把暴力分全拿到,让心态稳定下来以后,说不定轻轻松松地去做题还能超常发挥
<2>如果有不顺利的地方一定能要果断放弃,毕竟10min找不出来的bug一个半小时也未必会找出来。反观这次模拟,我有无数次机会发挥到全场第一,无论是最开始还是最后的补救,我以为的崩塌其实都还不错,
但是时间一紧张人也就紧张,于是大错小错全都接连不断
<3>每次修改都必须编译!!!千万不要过度自信

(2)平时练习的重点:
<1>代码能力!!!!
这次崩塌的开始是因为代码能力太弱,结果思路还可以,但是直接RE一点办法都没有。。
后面的错误其实大部分还是因为代码能力不够,处理程序不够仔细
基础题和难题都要多刷,基础题要格外重视防止出现连板子都能写错的行为
<2>好的思维习惯
不能过度依赖题解和上课内容,这对代码实现能力和思维水平都不利
长时间的思考和研究
<3>限时练习:用来稳定心态心态反复崩塌逐渐习惯之后,也就不紧张了

二、差点被我遗忘的题目分析
T1: n<=14时通过搜索和排序处理
n>=15时由于k<=10^9,结果固定为hzwer1+若干个0+k-1
分析:要关注每一个变量的范围,都有意义!!
要注意枚举和搜索的巧妙和尽量减少枚举次数

T2:通过结构体和hash,用左上角的信息维护每一个单独的木块(新的思路很重要)

T3:求所有点坐标x,y的中位数(x1,y1),作为bfs的起始点,然后搜索得出移动所有点形成连通块所需的代价

T4:总之不是并查集。若无$ a,则枚举第一个人说的是真话/假话,根据题目特殊性质,一定有解;若有$ a,则通过枚举+返回来多次互相验证(判断)的方式解决。

三、尾声:
希望这次模拟赛给我带来了一些有用的感悟,也希望我能不断地提升,毕竟能崩塌的根本原因还是水平不够。
总是希望我能不断提升然后混个高分省一和省队A类吧

posted @ 2021-08-09 21:35  Mint-hexagram  阅读(55)  评论(0编辑  收藏  举报