Diary -「CSP 2019 J/S」 游记
试机, 总体感觉不错, 至少不像初一时候的紧张, 毕竟是中青年选手了 ( ? )
当晚睡得挺好, 虽然是冲着一等奖去的, 但还是没有给自己过多的思想包袱.
策略
琢磨很久了.
我按照去年组的分数线大概估算了一下, 理想的得分状态应该是. 尽力磕出一两道正解, 稳健骗暴力. 事实证明, 这样的策略对本次考试是奏效的.
将近七点起床, 看了一眼数论和匈牙利的板子, 坐车去巴蜀. 到的时候看着门口全是八中的校服, 心里很踏实. ( 迷之主场? ) 和初三的同学唠了会儿磕, 也放松了一下心情.
考试开始
~ 读题
通读了三道题, 整体感觉不算特别难. 应该能打正解, 骗分的话能拿到 ~ , 迷之毒瘤, 只想到的全排列, 一眼分, 感觉需要再搏一搏了.
~ 写
二进制串的构造, 由于冲着正解, 想都没想找起了样例的规律. 有了一个循环求每一位的想法, 但始终过不了样例. 看一眼表, .
瞟一眼同桌 ( 貌似是西附的 ), 已经开了, 感觉全考场就我一个还在肝, 特别慌.
还好, 我想起了几次数学考试考炸的经历, 不要去在乎旁人的做题进度, 伸了一个懒腰, 重新读题, 发现题面其实介绍了这种二进制串的构造方式, 于是参照题面实现了一种递归的构造方法, 过了所有样例, 稍稍开心了一下, 投身.
~ 写
首先写了性价比较高的部分分: 链.
由题目对括号匹配的介绍, 很自然地想到用去维护序列. 在草稿纸上手玩了几条链, 发现其实就是一个比较简单的就能做到求解. 不到行代码实现了一下, 过掉了最后一组大样例 ( 一条链, ).
由于感觉不可做, 只能通过达到的目标. 去厕所清了一下缓存, 开始思考的正解.
发现我链的处理算法可以搬到树上, 在向下搜索的时候顺便维护出从根到当前结点的的样子, 是否就能处理出树的情况呢?
很快否决了这个想法, 因为带着递归是肯定会爆栈的. 在我代码里有这样一句:
for a chain:
fix a stack.
otherwise:
for all chain on dfs tree which begins with node 1, fix a stack.
memory ???
( 不敢用中文输入法, 果断选择中式英语. )
但其实上面的思路已经很接近正解了. 我尝试在代码里引入简单的回溯思想, 这样用一个全局的栈跟随的脚步维护即可. 用这种算法过了样例和的大样例, 惊奇的发现的链也能用这种算法过掉, 证明空间没有太大的问题.
看了看时间, 过了, 由于生成一颗树比较麻烦而且没有敲树的暴力, 信仰不对拍, 开.
~ 写
我就拿分好不好.
于是, 用 ( 考试的时候差点背不了单词 ) 加上一堆瞎搞, 妥妥分, 过不了样例.
代码看了一遍又一遍, 虽然暴力也不至于过不了样例吧? 于是开始怀疑样例有锅. 手玩了样例一的, 真的玩不出样例?!
生无可恋地重新读了好几遍题, 发现输入格式的神奇之处...
第二行个整数, 第个整数表示数字初始时所在的结点编号.
输入的不是个点的点权, 而是点权 ~ 所在结点编号?
改了输入, 过样例了...
垃圾出题人.
~ 检查
检查得很用心, 因为也打不来更多分了.
-
代码无关键字, 没有编译错误或警告, .
-
文件输入输出, 过样例, .
-
文件名, 文件路径, Ctrl+S, .
检查完后几分钟就完赛了. 检查时间还是比较合适.
反思
考完估分, 说他对了拍, 想必打的也是正解, 搞得我莫名慌张.
以后应该要谨慎一点, 不是每次都能过大样例就, 压缩一眼题的编码时间以给这种中档题更多的检查时间.
组的快乐时光
下午水了波组, 虽然没能, 但也成功自信.
琢磨了一下分数, 感觉至少应该要, 可能无脑骗分就可以了. 当然这是建立在的基础之上. 那么, 就当做分吧.
( 话说不知道为什么, 那个西附的同桌在考场外一看见我就开始膜, 难道分很高吗? )
考试开始
~ 读题
读了很久, 抽象出了题意, 虽然很清晰但只有爆搜的思路. 差点认成斜优板子, 后来发现新的限制, 暂时没有思路. 也只有一眼的 ~ 的暴力和 ~ 的链. 心里还是没底.
~ 写
开, 单纯地是认为暴力好写.
随随便便分, 跑路.
~ 写
考场上被 ~ 的超小数据误导了, 认为搜索就能水掉, 完全没有往骗分想, 更别说正解了. 这也是这两天考试唯一的失分较多的失误. 最终分, 无奈开.
~ 写
开这道题的时候, 压力还是蛮大的. 目前, 也就是说大约需要骗到分, 对应到部分分, 就需要 ~ 的分.
往想, 轻易地发现一个空间和时间的暴力: 表示处理完前个数, 最后一段是的最小代价. 能拿 ~ , 还是悬啊!
然后, 我通过神奇的第六感输出了每个状态的前驱, 发现能够帮助其他状态转移的, 只有从到的第一个有效状态!
这样的话, 状态数压缩到, 转移成了, 貌似稳了?
于是我开始为可能出现的惨剧尽量拿分, 又发现对于, 如果它能从或转移, 那么当, 从转移就一定优于从转移?
看了一眼读题时对题意的整理, 正好印证了对于一段和为的数, 如果它既能划分进左边区块也能划分进右边区块, 通过简单的式子化简之这段数一定划分进左边区块更优. 于是我的时间从变成了玄学, 是不是更快一点能?
首先拿这个神奇的优化和对过了拍, 没有出错, 又造了几组的数据, 居然卡在过了!
最终, 信仰开大空间, 喜提分.
~ 检查
发现部分变量没开, 赶快打补丁.
昨晚昨天的一系列检查操作, 望着天花板思考人生.
反思
有失误, 也有奇遇, 可能成为了目前唯一进步的空间, 估分, 总分.
考后反思
估分极其之稳, ( 牛客数据 ).
总的来说, 组的考试算是平常发挥, 庆幸没有出现重大失误. 不足的地方在于把"暴力"和"爆搜"建立了某种神奇的联系 ( ? ) 局限了思维, 失掉了大众分. 也很感谢之前数学考试的爆炸让我学会了对于考试节奏的把控, 这次考试可以说心态, 节奏以及发挥都没有太大的问题 ( 对于考前定的目标来说 ). 戒骄戒躁, 继续努力吧!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现