2024.7.20 鲜花
推歌:Dive Back In Time
点分治好题
翻译成人话:
给定一颗树,求:
考虑点分,考虑求经过根节点的。
先求一部分:
构造多项式 \(f\),次数表示 \(dep\) ,系数表示这个深度下 \(\sum b\)
这样 \(f*g\) 表示的就是原式,卷完了直接枚举项求即可。
考虑后面的 \(\sum\limits_{u\not=v} \frac{\max(b_u,b_v)}{dis_{u,v}+1}\),为了方便以后的做法,先将 \(\max\) 整成 \(\min\)
前面可以配成 \(\sum_{u\not=v} \frac{(b_u+1)(b_v+1)}{dis_{u,v}}\),和之前一样处理。
现在只剩下 $$\sum_{u\not=v} \frac{\min(b_u,b_v)}{dis_{u,v}}$$ 需要处理。
设 \((m(u,v) = k)\) 表示 \(\min(b_u,b_v) = k\) 的点对个数。
发现依然不好做,考虑容斥成 \((m(u,v) \ge k) - (m(u,v) \ge k+1)\)(类似定义)。
于是问题变成了求 $$k\in [1,\max b],\sum_{u\not=v} \frac{(m(u,v) \ge k)}{dis_{u,v}}$$
因为有 \(\sum b\) 限制,考虑阈值分治,在 \(k\ge T\) 以上可以 \(O(n^2)\) 暴力。
其余的直接枚举 \(k\),问题可以转换成 \(\sum_{u\not=v} \frac{[b_u\ge k][b_v \ge k]}{dis_{u,v}}\) ,一样卷积即可。
Miku
本文来自博客园,作者:xrlong,转载请注明原文链接:https://www.cnblogs.com/xrlong/p/18312644
版权声明:本作品采用 「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0) 进行许可。