CSP-S 2023 第二轮 游记
Day -2 10.19
参加了 24OI手速大赛 然后被矩阵加速卡死直接摆烂喜提垫底的好成绩
Day -1 10.20
总结昨天经验 决定学习 -fsanitize 真的很好用
晚上收到了五班同学的祝福 感动
Day 1 10.21
中午和 Burnling 坐车去 DLU 麦当劳很好吃
本来按1h + 1h + 1h + 1h + 0.5h规划 结果被提醒CSP只有4h 不知道咋弄
以为是1:30进 12:40左右就到了 正好赶上普及组考试结束
然后和 Burnling 一起 vp 普及组 被卡 T1
过了一会 gg 来了 说我们来早了 于是决定开始绕着 DLU 走圈 走圈的过程中把 T1 口胡出来了 但是还是不会 T4
考场外面很多人 然后才知道今年进入复赛的人数多了一倍 快开考了还没进考场
2:40左右才坐好 因为增加了一倍人是挨着坐的 并且没有挡板 随便看 然后pdf密码就发出来了 于是在人群还没有安静下来的时候就开始了
不知道会不会延时 不知道延到什么时候 照着6:30结束答吧
遍历一遍题目 没有去年那么长的阅读量 感觉T2比较可做
开T1 第一眼以为是按上述规则转动若干次 非常不知道从哪下手
细看之下才发现原来只转动一次 那给定状态能到达的状态就是有限的 我直接枚举能到达的状态然后枚举答案即可 看了下样例1解释感觉很对 开始码 并且写了一些人类艺术
3:05左右 过了两个样例 拥有了大量时间优势
看T2 上来猜想正解是线性 DP 于是直接设 \(f_i\) 表示只考虑前 \(i\) 个数的合法区间数
结果发现转移需要第二维记录起始点 寻思那就写个 \(\text{O}(n ^ 2)\) 正解弄出来还能拍
码完跑小样例发现假了 因为没法处理类似于()()
的合法区间
然后考虑修修补补 但是一直都不对
眼看着要到2h大关 感觉不能再耽误了就随便改了个 \(\text{O}(n^3)\) 的跑路
看T3 65pts应该比较好打 但是看起来就很恶心不想码于是去看T4
看T4 很快想到二分答案 然后二分出每个点对于当前答案而言最晚需要在第几天种下 但是感觉 check 可能需要用到一个反悔贪心一样的东西 并且没想明白怎么 check
看部分分 脑子里全是前面那个双二分 对于 check 还一点思路没有 感觉不太可做了 咬咬牙去写T3
敲T3 中途好几次不想敲了 但是想想剩两道题也没啥能写的了 于是继续敲
敲完了发现没给对应的大样例 /fn 自己手搓了一个 调过了就不管了
还剩大概一个小时 思考去写T4还是冲T2正解 考虑到T4需要推柿子还有推直线与 y=1 交点等一车东西 加上还要想怎么 check 感觉就算想出来了我一个小时大概率也整不出来 而T2冲出来正解分也不少 并且直接可以上拍
然后设 \(f_{i}\) 表示以 \(i\) 为右端点的合法区间数量 发现枚举左端点用一个栈扫一遍就可以做到 \(\text{O}(n ^ 2)\)
发现如果记下来 \(f_i\) 表示左端点为 \(i\) 时的答案 第一次清空栈之后就可以直接继承过来 优化了一下常数
大概还剩 40min 感觉不太能想出来T2正解了 就把两份代码拍了一下 过拍了 很安心
然后大概检查检查数组大小文件读入啥的就结束了
预计:100 + 50 + [0, 65] + 0
回来的路上看到yjm在群里说他把T2切了 很有实力
突然意识到我全场考试写的唯一一个算法是栈
Day 2 10.22
早上起来看lcx说他T1 30分 非常惶恐怕自己也写挂了 于是去测民间数据
还好T1没挂
T3挂到 25pts 也行吧 有分就行
然后发现了我T2为了卡常把读入换成了getchar()导致只要输入的n后面打了空格再换行就全炸了的事实。
啥也不想说了。
我对不起所有对我抱有期待的人。
Day ?
100 + 75 + 25 + 0 = 200
感谢 CCF 不杀之恩
去 lg 测了下T2官方数据只有 60pts 这下真被神机救了
应该能混个蓝勾 赞美 CCF
Day ??
发现T3挂了是因为没审题