Live2D

2022/10/26 考试题解

又被抓摆了/kk

T4(T3?)Cactus to Tree

link

Solution

tmd,连tm \(\Theta(n^2)\) 都没有看出来!!!!!!/fn

考虑 \(\Theta(n^2)\) 怎么做,其实就是对于每一个点直接 BFS(似乎对正解也没有什么启发性?听简单的,但是似乎大家都没有写)。再考虑树怎么做,你发现就是对于一个点求最远距离。

然后放在这个图上面,可以发现的其实就是如干个环通过边连在一起。那我们可以发现的是,对于环上一个点求的时候,肯定是断开距它环的一半的那条边,然后就是求每个环到环的最小最大距离,这个直接建个圆方树换根dp一下就好了,断边方法也是跟上面一样的。

似乎可以做到 \(\Theta(n)\) 不过 \(\Theta(n\log n)\) 挺好做的,所以就补的 \(\Theta(n\log n)\)

T2(T4?)[Ynoi2005] vti

link

Solution

Ynoi滚出模拟赛!!!!!/fn

纯口胡,不保证正确。(upd. 已经写了一发)我们一眼看出不会低于 \(\Theta(n\sqrt n)\),因为链的时候就是区间正序对数了,所以我们也就明白这个题目需要二次离线了(开摆 😅

我们考虑我们的答案如何计算,我们把 \(T\) 按 dfs 序排序,设 \(f(u,v)\) 表示树上 \(u\to v\) 的正序队数(\(u\)\(v\) 的父亲),那么答案即是:

\[\sum f(\text{rt},T_i)-\sum f(\text{rt},\text{lca}(T_i,T_{i+1})) \]

\(\text{rt}\) 就是所有点的 \(\text{lca}\)

那么你发现这玩意显然可以树上莫队+BIT之类的。不过这样就是 \(\Theta(n\sqrt n\log n)\) 的了。你发现可以直接二次离线,可以差分之后用分块维护一下就好了。

复杂度 \(\Theta(n\sqrt n)\)(假设 \(n,m\) 同价),感觉还是挺清新的。这玩意还卡空间,每次修改 l,r 存变化区间就好了。

posted @ 2022-10-26 19:18  Dark_Romance  阅读(46)  评论(0编辑  收藏  举报