NOIP2024 游记

ZYLZPP

2024-12-01 15:07:03

生活·游记

day-1145141(是个质数)

CSP 的 T4 调了 2h 多没有调出来,交了没调完的直接爆炸。

day-2

看着编号特大的准考证,脑补 AFO 时光。

day0

吸取了之前坐大巴车晕车的教训,自驾前往杭州。

day1

7:30起床 + KFC早餐

8:00左右进考场

8:30开考

先配vimrc,打快读。

开T1

盲猜贪心,花 10min 打了一下,过大样例,直接跑路。

开T2

计数?T2 就考计数?今年这么恐怖的吗?

再模了一遍,发现直接递推。

好吧,是我多虑了。

码量可能比 T1 还少。

开T3

此时差不多 45min

看见树边的遍历,新定义,计数,和K有关的数据点

一眼不可做,直接跳 qwq

开T4

区间 LCA,转换成相邻两个的 LCA 和区间 \min

注意到 $5e5$ 以及我的常数,还得优化。 发现将相邻 LCA 按深度降序排序后依次插入,会将左右两个区间合并。 这样产生的区间不超过 $n$ 个。 答案即查询满足条件的区间中 $dep$ 最大的。 按区间与询问是否包含分两类处理: - 不包含:按长度降序插入数据结构,询问是区间查询最大值。 - 包含:转变为二维数点类问题,也可 $O(n \log{n})$ 解决。 开了 $4$ 个线段树,大样例跑了 $1s$ 多,有点慌。 改成 $4$ 个双向树状数组,卡到了 $0.7s$,过。 #### 回到T3 此时大约还有 $2h$,总不能干坐着吧? 仔细模了下 $K=1$ 的样例,很快发现 $ans = \prod {(deg_i - 1)!}$ ,$24pt$ 到手。 然后抱着能拿一点是一点的心态打了**特殊性质 A、B**,$40pt$ 到手。 开始磕 $K=2$: 逐渐走向容斥,考虑减掉同时可为根的数目。 注意到只有两条边的路径上的边会影响是否可同时为根。 同时为根时路径上的边全被限制,每个点的贡献变为 $(deg_i - 2)!$ ,搞了个 LCA 求 dis,然后暴力跳算贡献,$56pt$ 到手。 此时大概还有 $40min$。 看着 $K=8$ 有点蒙,这难道是枚举子集容斥?感觉不太有性价比。 发现如果一子集内边之间的路径形成三岔,则没有可同时为根的方案。 于是想到了以每条关键边为根 DP 带容斥系数的方案数。 于是开码这个 $O(n^2)$ 做法,结果打着打着,写下了一句: ``` if (imp[v]) add(x, -x); ``` **what?** 这不是变成 $0$ 了吗? 仔细一想,发现只有当一对边路径上的边都不关键(即相邻)的时候才有贡献,否则中间的边取或不取方案数一样,但系数变负,没有贡献。 赶紧改,调过小样例后直接测**样例12**。 我这是要AK了? --- 怎么可能! 这算法还是 $O(n^2)$ 的,直接**T**飞 $qwq$。 想着是可以优化的,但没有时间了。 抄完字节数,就坐等结束了…… ### 估分 $100(贪心不挂的话) + 100 + 76 + 100(不被卡常的话)$。 ### 后记 高二了,最后一次真正的 NOIP 了,~~挂了就 AFO 了~~。 upd:出分了 $376$ 没挂。