CSP2022-S游记

· · 个人记录

csp2022-S游记

day-?

差点停课

day-1,0

期中考炸了

day1

2:27

下发了密码

2:50

看完所有题。感觉T2比较水,st表维护正/负数中的最大/小值,然后分类讨论一下就行了

敲敲敲

3:10

敲出来了。大样例没有过

3:30

发现预处理\log部分出错了:

const int L=19,N=100005;

for(int i=2;i<=L;++i) lo[i]=lo[i>>1]+1;//原来的代码
for(int i=2;i<=N;++i) lo[i]=lo[i>>1]+1;//正确的代码

然后过了样例

3:50

发现T1可以先预处理每个点到1号点的前三优的中转点,枚举第2/3个点,则第1/4个点一定是2/3到1号点中前三优的中转点

开始敲

4:10

敲完。一遍过了所有大样例

开始打对拍

4:30

什么也没拍出来

开始想T4

想了一下预处理$dp[x]$表示根到$x$节点的路径的答案,则答案为$dp[s]+dp[t]-2dp[lca]

举出了无数个反例

莫队??

发现只能往右端点加 ,而且cspS应该不会考这种东西吧?

数据随机显然可以乱搞(因为树高度在\log级别)

4:50

T4什么都没想出来

开始想T3

想了亿下,发现只要约束2满足,那么约束1一定也满足 现在问题变成了维护点的出度 想了各种数据结构,啥都没想出来 ~~(没有想到哈希,我智障了)~~ 由于删/加边$O(\log n)$,删/加点$O(点的入度)$,因此特殊性质1可以过 **5:10** 开始敲T3 **5:30** 终于敲完了。样例没过 **5:40** 发现一堆细节错误,改完之后过了前3个样例(最后一个大样例跑了3s) 开始敲T4 **5:55** 终于敲完了 样例二没过 手算了无数遍,没有发现什么问题。严重怀疑大样例错了 **6:05** 发现$k=3$的时候可以绕着走 改完之后过了样例2、3,没过样例4 又算了无数遍,检查代码无数遍 **6:15** 发现可以连续绕多次。 再开一个dp数组维护在与该点相连的点的答案就可以了 **6:20** 终于过了所有样例 打了一下T2暴力,没来得及造数据生成器,于是手捏了一个数据,没有问题。 **6:26** 检查了无数遍freopen **6:27** 比赛提前3mins结束 估分100+100+[50,60]+76=[326,336] 实际336 感觉题目难度和去年差不多,但是部分分给得很多 ## 总结 敲代码时一定要仔细。T2如果细心一点,就不会因为这种弱智错误浪费20mins的时间。 思维/经验都不够。从来没有见过哈希能这么用 祝大家CSP2022RP++