CF1060E Sergey and Subway

发布时间 2023-09-08 17:35:24作者: FOX_konata

原题

翻译

首先容易想到答案 \(ans = \sum_{x\leq y}{\lceil \frac{dist(x,y)}{2} \rceil}\)

我们发现因为有了上取整的限制,我们对于每一条边考虑变得很难了,于是我们想一下能不能用一些转化把他转化成对于每一条边计算贡献

容易发现 \(\large{ ans = \frac{ \sum_{x\leq y}{( dist(x,y)+[dist(x,y) \mod 2 = 1]} )}{2} }\)

我们发现\(\sum_{x \leq y}{dist(x,y)}\)变成了我们熟悉的东西,我们可以枚举每一条边看这条边会被选多少次。因此我们只需要思考一下后面这个东西怎么算

我们容易知道\(dist(x,y) = dep_x + dep_y - 2 \times dep_{lca(x,y)}\),我们发现\(- 2 \times dep_{lca(x,y)}\)并不会影响原式的奇偶性,因此我们对于我们枚举的一条边,我们只需要看左右两边\(dep_u\)的奇偶性个数即可

最终复杂度\(O(n)\)