省选模拟54 题解
A. space
首先考虑建个图,发现每个点的入度出度均为 $1$,其实就是形成了若干个环排列。
起点为 $(1,1,1,1)$ ,但是最终还要经过一次起点。
所以在 $n \neq 1$ 时,考虑直接无视这个起点,转化为自选起点,但是要花钱来,然后要求经过每个点一次的最小代价。
发现代价显然是 $n^4 + cnt$ ,$cnt$ 表示连通块数。
考虑当前考虑的点在 $A,B,C,D$ 排列中分别形成了大小为 $a,b,c,d$ 的环。
所以环的大小就是 $lcm(a,b,c,d)$ ,环的个数就是 $\frac{abcd}{lcm(a,b,c,d)}$。
所以问题就是 $\sum_{a,b,c,d} \frac{abcd}{lcm(a,b,c,d)}$。
容易发现 $\sum_{i}a_i=n$,所以不同的 $a_i$ 的个数只有根号级别。
所以暴力去做的复杂度是 $O(n^2 log)$的。
然后有一个很神仙的$meet \ in \ the \ middle$做法。
考虑首先合并 $A,B$ 为 $F$,然后合并 $C,D$ 为 $G$,最终合并 $F,G$ 即可得到答案。
但是这个东西仍然不好做,贡献里面有 $lcm(a,b,c,d)$ 无法搞成简单的形式。
然后神仙的做法是考虑 $lcm$ 就是质因数的次数取 $\max$ ,可以转化为其中最小的三项的加和。
所以这个 $\frac{abcd}{lcm(a,b,c,d)}$ 其实就是 $\gcd(a,b) \gcd(c,d) \gcd(lcm(a,b),lcm(c,d))$。
可以认为这里的 $\gcd$ 表示取 $\min$, $lcm$ 表示取 $\max$,然后直接套个莫比乌斯反演就解决了。
B. party
考虑枚举最终的连通块。
那么暴力的做法就是跑个二分图最小带权匹配。
但是发现挺难打的,所以考虑树上的一些特殊性质。
然后这种树上匹配问题就有一个套路,考虑每一条边的贡献。
如果这条边割裂的两个子树能自给自足,那么就不产生贡献,否则产生差值的贡献。
然后发现这个玩意搞个子树归并的 dp 就完事了。
假设有 $k$ 个特殊点,那么子树归并的复杂度就是 $O(nk)$ 的。
然后发现其实并不关注根到底是谁,随机 $\frac{n}{k} * log$ 次可以保证很大概率答案是正确的。
这样总复杂度就是 $O(n^2 log)$ 的。
但是这个题更特殊,其实简单地统计父亲方向的贡献即可做到 $O(nk)$ 。