NOIP2024 游记

OldDriverTree

2024-11-29 16:57:07

生活·游记

\text{Day}\ -\infty

摆烂,看番

\text{Day}\ 0

退役倒计时

上午学了一下三元环计数的 O(m\sqrt m) 做法,看了一些 \text{border} 相关性质

下午做大巴车去淄博,本来教练说十二点准时发车但是等到了十二点半才走,最准时的一集/qiang,笑点解析:同学 @Tomorrow_YYX 一开始没找到身份证

在车上一直在看番,把超电磁炮第一季看完了

途中一个同学在服务区踩到了没有凝固的水泥,令人忍俊不禁

晚上试机时打了下有向图 \text{Tarjan} 和平衡树,见到了 @SmileMask 大佬

试完机回来写了一下咕了很久的建造军营

晚上和 @zcz0263 @zhongpeilin 等人在酒店里吃烧烤

然后回房间睡觉,但是一直没睡着,到了起码十二点以后才睡着,寄!

\text{Day}\ 1

早上在酒店吃完后去考场

今年山东开考前竟然不让提前动鼠标和键盘了,惊讶

读完解压密码后发现第一层解压寄了,结果发现是 \text{forget} 听成了 \text{forgdt},如何呢

开考后读完一遍题,发现 \text{T4} 是数据结构题,感觉很可做,但是 \text{T2}\text{T3} 是数数题,数数滚出 \text{OI},数数滚出 \text{OI},数数滚出 \text{OI},数数滚出 \text{OI},数数滚出 \text{OI},数数滚出 \text{OI} /oh

然后开 \text{T1},一开始读错题了,开考后二三十分钟才发现,寄!感觉不太好做,于是蒙了一个贪心做法,发现大样例过了就不管了,此时已经过了 68\text{min},然后开 \text{T2},发现按 p_i 排序后相邻两个点之间的方案数不难求出来,而每一对之间的限制都是独立的,直接乘起来即可,时间复杂度 O(m\log m),大概做了二三十分钟就过了所有大样例

然后直接去冲 \text{T4},首先当区间一个端点固定,另一个端点向另一端移动时 \text{LCA} 的深度一定回变小,所以我们只需要统计区间长度为 k 的情况即可,用 \text{ST} 表维护 \text{LCA} 和区间 \text{LCA},对于询问暴力枚举就可以做到 O(nq+n\log n),喜提 32\text{pts},开写!写完发现样例 3 爆栈了,但是忘了怎么手动开栈,寄,这下只能赌样例 1 和样例 2 的强度了

然后继续冲,感觉可以二分 \text{LCA} 的深度,然后就能转化为对于所有深度大于等于 x 的点,判断子树内编号在 [l,r] 区间内的最长连续段的长度是否大于等于 k,没有啥思路,于是就去想特殊性质 \text{A} 链的情况,发现直接整体二分,用线段树维护最长连续段可以做到 O(n\log^2 n),加上前面的 32\text{pts} 就有高达 48\text{pts}

此时只剩一个小时多了,还没开 \text{T3},已经有点慌了,于是就先把链的 16\text{pts} 丢掉去开 \text{T3},感觉不太能冲正解,于是开始拼部分分,对于链的情况答案显然为 1,菊花图的情况从每个点出发都有 (n-2)! 种方案,再减去重复的,总方案数就为 m(n-2)!-\binom m2(n-3)!,再想 m=1 的情况,考虑树形 \text{DP},设 f_u 表示以 u 为根的子树,从 ufa_u 的边出发 \text{dfs} 的方案数,转移就为 f_u=(deg_u-1)!\prod\limits_{v\in son_u} f_v,由于不会开栈测不了大样例,于是手造了两组样例,发现都过了于是就跑路,喜提 40\text{pts}

此时距离比赛结束还有 20\text{min} 左右,感觉不太能写完 \text{T4} 链的 16\text{pts},于是就开摆

期望得分 100+100+40+32=272\text{pts}

出了考场问了几个朋友发现都是 272\text{pts},不知道是输还是赢

看了下 \text{U} 群和 \text{LA} 群发现 \text{T3} 是带容斥系数的树形 \text{DP},寄,赛前做的容斥题都白做了!

官方成绩 100+100+20+32=252\text{pts}

这下真寄完了,大众分都没有了,看了一下 \text{T3} 的题解,发现自己的做法大部分都对了,但是一个细节假了,输麻了

唉,明年再战