2023.2.23模拟赛总结
输出的freopen一定要写在printf前面!!
7:35开题 上去先看第一道 很快写出一个 30pts 的暴力 (结果忘了 $10^9 * 10^9 $ 会炸 int 结果当场挂大分) 看到 \(10^6\) 的数据范围 自然而然的想到 O(nlogn) 的复杂度 但是大概考虑了一下没找到单调性 决定暂时搁置
大概7:45左右 去看 T4 准备敲步骤分 最开始以为是树的直径 也考虑了一下分层图最短路 但细看发现似乎是换根dp 加上钢哥之前押过这玩意 于是感觉挺合理继续想 大概有了一个树上dp+LCA的思路 但觉得码量太大就先去看了T2 T3
T2看了下 看到刷子突然想到之前lyn学长讲的字符串刷子 当时就觉得是区间dp 但奈何没有思路 去做了T3
T3属于是审题错误 最开始没看到“该字符串的子串” 于是写了一个 hash+KMP 的暴力思路:对于AABCAB 枚举A的长度 找到两段相等的A 然后用KMP去匹配后面中的A 用hash判断两个B是否相等
写完跑了一遍样例1 看到输出1的时候愣了一下 随即自己手撕样例发现也没有问题 这才看到是子串 加上忘了substr函数咋用了 当时心态其实是有点崩的
然后大概复制粘贴原来写的代码写了一个暴力枚举子串的版本 样例1过了之后样例2答案又不同 于是把自然溢出换成了123456791的模数 一看答案正确也没管那么多就当这题暴力写对了(实际上后来我输出断点的时候发现实际上答案相同真的只是纯纯的巧合)
至此已经两个多点 回看 T2 感觉既然 T4 是换根dp一套题应该不太可能出俩dp题 然后想了个贪心的思路 但后来因为不知道怎么统计答案作罢
然后去敲T4 大体框架其实是想好了的 但没想到换根时如何转移 并且每次修公路后更新每个节点的怒气值也没太想明白 结果就是好容易样例1调过了结果样例2全是负数
最后想着要不把更新怒气值那段代码重构 结果时间不够了 只能上交重构前的代码
交完发现输出的freopen还写错位置了 感谢KH哥哥帮我改freopen
最后光荣爆零 哈哈。
没啥可说的 真就是单纯的菜 据说T1T3T4暴力全写出来有90pts 但是没想到好多人把第一题切了 回看才发现第一题纯纯初中不等式变换 当时考试的时候我移项都移了结果愣是没看出来
赛后总结:1.模板还是太不熟练了 发现模拟赛写部分分其实也没那么简单 如果模板达不到信手拈来的程度时间多半还是不够用的
2.不开long long见祖宗! 实际上这次大概算了下把该开long long的ans都开了 结果忘了int*int这码事了 鸣个警钟先 希望以后不要敲烂
3.写题前最好把整个框架全部敲定再写 虽然边写边想挺省事 但是思路远没有先敲定再写
大概就这样了 也没想到人生第一次模拟赛能爆零 也算是长教训了
人已经在谷底了 再怎么考也不会更低了 但希望春季赛能拿点分罢 毕竟人总是要不断进步的(