CF1292C Xenon's Attack on the Gangs

CF1292C :

首先可知答案是仅由一条链贡献产生。

考虑枚举一条链。

那么当前边 \(\{u,v\}\) 若放数值为 \(x\) ,其对于答案贡献可记为 \(siz_u*siz_v\) 。因为对于每个以凑好的路径,加入数 \(x\) 可使边两边子树任意选两点的路径的值加 \(1\) 。

考虑跳链,记数组 \(fa[u][v]\) 为以结点 \(u\) 为根的树中,结点 \(v\) 的父亲节点。

那么可得出转移方程为:

\(f_{u,v}=\text{max}(f[u][fa[u][v]],f[v][fa[v][u]])+siz[u][v]*siz[v][u]\)

那么只需枚举每一条链,计算答案即可。

code

posted @ 2022-10-12 15:32  awlgot  阅读(43)  评论(0)    收藏  举报