AHOI2022(2023.2.13)

向总这是发的什么电。怎么就要我们考这AHOI。 真的很 \(\text{hard}\) 啊,经过4h的奋战之后也只有 \(90pts\)。 不过这几个题的质量很高,遂写一篇总结。

I.[AHOI2022]排列

这个题其实我觉得评蓝有点低了。各种技巧和性质其实都不算很好想的。不过在这一场里面确实算是简单题了。

首先看到题目是排列,而且这个鬼畜的 \(P^k\) 的定义,直接考虑置换环。然后发现 \(f(i,j) = 0\) 的充要条件就是两个元素在一个环里面嘛,于是直接可以不用考虑这一部分的答案。

然后就是要考虑对于 \(i\)\(j\) 不在同一置换环时候的 \(f(i,j)\), 可以发现 \(v(P)\) 其实就是将排列 \(P\) 拆解为置换环后环长的 \(LCM\) ,而 \(v(A_{i,j})\) 其实就是将原来 \(i\)\(j\) 所在的环的环长在 \(LCM\) 中的贡献删除, 并给 \(LCM\) 加上 \(len_i + len_j\) 所产生的贡献。

直接枚举显然至少是 \(O(n^2)\) 的,但是我们在经过考虑之后发现并没有什么可以同时批量处理贡献的方式,怎么办呢?

其实很好得到的一个性质是,对于任意 \(i\)\(j\),只要两者所在的环环长相同,它们是哪两个点对产生的贡献没有影响。 这样我们就可以把所在环长相同的点当作一个等价类。 由于 \(\sum len = n\),所以说不同环长最多只有 \(O(\sqrt{n})\) 种。

那么就可以将枚举的复杂度从 \(O(n^2)\) 降成 \(O(n)\) 。 那么接下来的问题就是如何快速维护 \(LCM\)

显然不能直接从定义或者是 \(LCM = \frac{\prod a_i}{gcd(a_i)}\) 这样的柿子求。 那么我们考虑 \(LCM\) 其实就是对于每个质因数的指数取 \(max\) 后相乘的结果。

然后又因为你每次只需要删除两个 \(len\), 所以只需要维护每个质因数前三大的值。

在使用线性筛,并且顺带记录每个数的最小质因子后,分解质因数可以做到 \(O(\log n)\), 同时由于每次枚举只需要分解三个数的质因数并且跟前三大的指数作比较,故总复杂度为 \(O(n \log n)\)。 本人考场上写的是用 \(\text{multiset}\) 维护指数集合的大常数 \(O(n \log^2 n)\) 的丑陋写法,可以凑合看看。

测评记录

II.[AHOI2022]钥匙

欸等等,我怎么觉得这题比T1 EZ啊。是CNOI选手独有的DS加成吗? 感觉性质很显然,只要能想到匹配然后给路径+1就不算太难做。不过考场上没开。我是思博。

Upd:我收回以上所有的话,这东西我至少调了6h,心理阴影都调出来了/tuu。

好首先我们肯定发现不能直接拉出来 \(u\)\(v\) 的路径,这样子复杂度 \(O(nm)\) 是没有办法优化的。 于是我们转而考虑每一个匹配的钥匙-箱子点对会给哪些路径带来 \(+1\) 的贡献。

首先容易发现每个颜色可以分开来考虑。因此下文的讨论都是对同种颜色作的。

我们可以将钥匙与箱子的匹配看成是括号匹配,这样子做的好处是括号匹配的性质完美契合了这题钥匙匹配箱子的性质。暴力的想法是我们枚举每一个钥匙,维护一个栈,然后遇到钥匙就压进去一个,遇到箱子就弹出来一个,直到栈空,此时有一个箱子和出发点的钥匙匹配。假设箱子所在的点是 \(v\), 出发点是 \(u\)

\(u\)\(v\) 的祖先, 则这一组匹配可以贡献到 \((1 \sim dfn_u / dfn_u + siz_u \sim n, dfn_v \sim dfn_v + siz_v - 1)\) 的点对(点以出发点dfn为横坐标,终点dfn为纵坐标)上。

\(v\)\(u\)祖先的情况类似。

\(u\)\(v\) 有非 \(u,v\) 的公共祖先,则这一组匹配会贡献到 \((dfn_u \sim dfn_u + siz_u - 1, dfn_v \sim dfn_v + siz_v - 1)\) 的点对上。

很显然上述的贡献都是 \(1\) 个或 \(2\) 个矩形的 \(+1\),使用扫描线容易维护。 查询即单点查询。

然后问题是怎么把暴力匹配的复杂度降下来。 考虑建对每种颜色建虚树, 由于同种颜色钥匙最多只有 \(5\) 把,因此做匹配的总复杂度是 \(O(n)\) 的。

加上最后的扫描线维护,总时间复杂度 \(O(n \log n)\)。我写的比较丑陋,中间还挂了很多小细节。

测评记录

对于后两个题,我的评价是 \(\text{too hard}\)。 先咕着,等以后再回来写。

posted @ 2023-02-13 16:21  _LiMLE  阅读(13)  评论(0)    收藏  举报