CSP-S 模拟9 爆0记
伴随着假期的临近,暑期上半集训也将迎来尾声。对于最后一场模拟赛也是充满了抵触和期待。
抵触大抵是关于下午就可以回家了上午还要打模拟赛这件事。
期待也许是打完就可以放假了。
这也成为了这场悲剧的导火索。
比赛前一天晚上,我给家里打了通电话,表示了要放假的期待和对于这场模拟赛的没底。
没底是因为心情太浮躁,没法静下来想题,还有前几次模拟赛打的一直不好。
电话里提了一嘴可能会爆 0 ,本来是玩笑话,没想到会成真(早知道不说了)
下面来总结一下失败原因,给自己一个告诫。
1、策略方面
在拿到 pdf 文件后,我破天荒地看了看注意事项,里面有一句话说题目比较简单,可能有人会AK。
然后我就真的认为题目很简单(我真傻,真的)
于是与平时先打暴力的做法不同,我决定直接思考正解,于是便没有了暴力分的兜底(寄)。
拿到T1之后,可能是觉得题很简单,最开始直接误解题意,认为是求 \(sum - s\) 是不是质数...
然后兴致冲冲地打了个质数筛,结果发现样例不过,然后甚至怀疑是写假了而不是思路有问题。
此时我左右两位都已经构思完毕开始码代码了,当我意识的思路假了时候已经离开赛过去了半个多小时了。
然后开始急,不知道正解是什么,但是其实想出了正解,但还没证伪就被我自己否了(我也不知道为啥,可能是脑子糊涂了吧...)
之后考虑观察大样例获取性质。
于是在长达几十分钟的观察后,我发现大样例的答案貌似都位于输入数列某个数左右不超过 5 的地方(毫无道理),于是我为了保证正确性(?)将范围开到了每个数左右 10 的地方。枚举模数
然后不出意外地炸掉了...
ps:正解为枚举 \(sum - s\) 的因数当模数,(非常好证明),可惜被自己否决了(我就是一大**)。
T2 一眼看出二分答案,然后大脑宕机,不想思考。之后就寄了。
在考虑二分答案如何 check 时,我把二分的答案当成了未知量...然后推不出来。
因为上次模拟赛刚考了二分答案,跟这题几乎一模一样,于是我推断这题不一定需要二分答案(?)
最后我想了一个非常差的贪心做法。(虽然赛后证明是对的,被用在正解的check函数里)
因为没有答案这个已知量,导致实现非常困难。
我码了两个多小时,最神奇的的是它大小样例都过了...然后我兴高采烈地交了上去。
期待得分:100 tps
实际得分:0 tps
正解:二分答案,枚举 \(b\) 中的每个数,在 \(a\) 的值 \(ans - b[i]\) 区间中找到最大的 \(a\) ,然后删除,动态维护这个数列,之后如果数列中每个数都完全匹配就返回 \(true\) ,否则返回 \(false\).
T3:不知道怎么判无解,又是多测,寄掉。
当时用大样例一测,发现除了无解的地方都对,激动坏了,然后一直想到比赛结束都没想出怎么判无解
正解:枚举每个节点作为根,对比两棵树的形态,还没改这题。。。
T4 没看题,不知道。
2、技术方面
考完突然发现自己贪心学假了,跟没学一样...
还有代码能力太差,还得接着刷题。
考试看错题面四五次也是神人了...

浙公网安备 33010602011771号