CSP-S2022游记
Day -inf
考前9~10月闭关,两个月吧。学了好多的,码力还是很菜,思路急需打开。。。
第一次CSP-S/第一次OI比赛/第一次4Hour全程 ———— 没有什么很大的心理波动,比较清楚自己的水平,还是很期待的———第一次好吧!!!
Day 1
上午本来告诉自己要补题,补了CF1608B/CF1608D就10点多了,然后打了一点图论的板子(并查集/tarjan),割点打挂了,贺完以前代码鸽到12:15还是吃饭去了。。。
中午撑到12:57,还是没补出来CSPS2021的交通运输,然后懒得打单调栈/队列的板子了,于是打了522次电子木鱼攒RP,12:57躺行军床上(何神又起来了)
下午13:15出发,走前紧急拍了张照,地铁上复习了以下ComplieandRun的Bash脚本,14:06YZ科艺楼楼梯间罚站,考前10分钟进了考场
打板子废了老些时间,密码belief2022下发了2min才配置完所有Bash脚本和Nd代码模板,不过市一中的键盘手感挺妙的就是不错。
T1
开T1。考前想着冲完T1拿分,心里就有底了。
第一眼4个不同景点,想着这不维护所有可行边然后dfs以下就可。然后开始码: \(trans[i][k]\) 维护景点\(i\)转 \(k\) 次可达景点。对于\(k\)次内可达的点对连边即可, \(V[i][j]\) 维护 \(i,j\) 在 \(k\) 次转是否可达并保证不会建重边。然后 \(trans\) 上了一个滚动数组优化空间。最后就是 \(dfs\) 深搜 \(4\) 个要访问的景点,并保证 \(1\) 不为要访问的景点且 \(V[i_4][1]=1\) 即 \(i_4\) 与 \(1\) 可达即可。
码完发现 \(holiday3.in\) TLE了(约 \(3s\) ),发现其 \(n/le 220\) ,然后心中拔凉拔凉的———寄了只有 \(40pts\) (实际上我没注意后面有 \(40pts\) 保证 \(k=0\) )。保存暴力后写了一个记忆化搜索,大概是 \(dp[i][j]\) 表示访问景点i时一共访问了 \(j\) 个景点的最大分数,然后飞快跑出来 \(holiday.out:3954/holiday.ans:3908\) 。真是令人无语。
然后发现 \(holiday2.ans\) 也锅了,补完 \(v!=1\) ( \(1\) 不为景点)后测 \(holiday3.in\) ,还是 \(3954\) 。。。
当时16:06,1.5h过去了。想着T1有点耗太多时间了,联想起考前李总说过“不要想着\(5min\)就能调出来,结果 \(10min\) 都没出”,就留个暴力开T2了,Byebye。
T2
T2一看是序列,\(n\le 1e5:\mathcal{O}(n)\)?
考虑C矩阵,发现后手B只能被动选择当前行中最差的一个,那么A显然可以预料自己选了以后B会选什么,所以A贪心的选行内最差结果最好的一行即可。
然后我直接\(20min\)写完 \(\mathcal{O}(qnm)\) 跑路,极限数据估计只有得分 \(25pts\) 。
此时我的想法是T3再冲个暴力,T1修完记搜拿正解 \(100pts\) 保省一。
T3
于是开T3。
看了老半天题意,理解了以后尝试口胡修改操作,期望 \(60pts\) ,一番意识流之后没有一个所以然。战术厕所,回来于是暴力每次操作完都tarjan查询状态———总复杂度 \(\mathcal{O}(qn)\) , \(40pts\) 跑路。
码了一个多小时,中途发现即使一个点单独为强连通分量( \(siz=1\) ),只要可以到达环就合法。最后近2hour调完, \(40pts\) 到手。
T4
即时估分 \(40+25+40=105\) ,感觉要寄。
此时差不多17:52~56,剩余0.5h。犹豫要不要开T4。
看旁边T4写了,于是我也开了,预计写完 \(LCA\) 后 \(20min\) 调T1正解。。。
T4读完,直奔 \(k=1\) 的特殊性质:答案为 \(S\sim T\) 路径的点权和,直接树上前缀和维护根节点到点u的点权和,倍增 \(LCA\) 做差即可——— \(16pts\) 。
于是冲完写完,自己手造了一个链的数据,然而noilinux直接RE了。
尝试输出中间变量,查到 \(dfs\) RE,发现 \(dfs\) 有指向 \(0\) ,又输出 \(vector\) 里的边————没有 \(0\) 。已经大概18:10,当时没心情静态差错了,想着要写T1,于是我放弃了。(赛后查明是 \(dfs\) 函数返回值为 \(ll\) 而非 \(void\)...LCA写成if(dep[f[x][i]]<dep[y]) x=f[x][i]$)
最后约 \(10min\) ,使劲调T1,无果还是 \(3954\) ,真的有点绝望,满脑子:没有省一?没有省一?没有省一?
The Final! 考试结束了!预估 40+25+40=105
出考场听见旁边人:今年一等分数线不得 \(300\) 多,吓得我一抖,赶紧看去年: \(110\) ,出来心情真的很低落,就想着其他人会拿省一甚至先是忘记手表,下楼又是水杯
Day 1.9
翻转:回家测Luogu, 80+60+40=180pts
认真地重新回顾部分分数据范围和特殊限制,T1有 \(k=1\)+30pts$ ,T2性质 \(2\) +数据可能非极限
Day 2
InfOJ 测了全省排名,目前Rk117 180pts。谢神Rk 41,长老Rk 36,傅老师Rk 96,
李总面谈,大概说结果没有特别满意,还是调整好状态和考试比赛策略,打好NOIP。
Summary
第一次\(OI\)比赛,结果不是惊喜,是可接受的,也是目前考试比赛实力状态的反映。
T1 正解\(Meet in Middle\),对于四个点,预处理每个点作为第2/3号点时从两端出发的前3优解。最后枚举中间两个点的方案和前3优解处理答案。
dfs爆搜4个点破坏时间复杂度。回顾此搜索算法只练习了模板题。
T2 稍加分析:\(A\)决策后可以判断\(B\)决策,即A选择最差结果最优的一行即可
对于特殊性质\(1\)(全正数):只需维护序列a/b最值,答案为\(a_{max}*b_{min}\)
考虑一般情况(存在负数):维护区间最大正数,最小负数,最小非负数,最大非正数。分类讨论得到最优的最差结果。
T3 暴力 \(Tarjan\) 保证 \(\mathcal{O}(qn)\)———\(40pts\)
正解优美:冷静分析可以得到反攻满足基环内向树森林(每个点出度为 \(1\) )。考虑对每个点赋随机点权,每条边的边权等于终点的点权。作出所有点的异或和,将所有操作全部转换为对边操作(单边操作直接异或来实现摧毁或修复),每次比较点权异或和与有效边权异或和是否相等。
T4 目前只考虑了 \(k=1\) 的情况,直接树上前缀和得到 \(S \sim T\) 路径上的权值和。
Day 9
HN省内分数出来了,全省175pts-Rk145。省一非常悬或者应该说没有任何希望了。
不去乱分析或者去想一些乱七八糟的事。我现在无比清楚NOIP备战计划做到位是给自己最大的底层保障。

浙公网安备 33010602011771号