树学题

CF2063E

容易发现答案是

u,vT2min{depudeplac(u,v),depvdeplac(u,v)}1\sum_{u,v\in T}2min\{dep_u-dep_{lac(u,v)},dep_v-dep_{lac(u,v)}\}-1

u,vu,v 互不为祖先

u,vT2min{depudeplac(u,v),depvdeplac(u,v)}1=\sum_{u,v\in T}2min\{dep_u-dep_{lac(u,v)},dep_v-dep_{lac(u,v)}\}-1=

u,vT2min{depu,depv}u,vT2deplac(u,v)u,vT1\sum_{u,v\in T}2min\{dep_u,dep_v\}-\sum_{u,v\in T}2dep_{lac(u,v)}-\sum_{u,v\in T}1

分三段求:

第一段对depdep 从小到大排序,贡献是

2i=1ndepi(ni)2uTvsonudepusizv2*\sum_{i=1}^{n}dep_i*(n-i)-2*\sum_{u \in T}\sum_{v \in son_u}dep_u*siz_v

第二段dfs枚举每个u的儿子,贡献是

2x,ysonusizxsizydepu=2*\sum_{x,y\in son_u}siz_x*siz_y*dep_u=

2vsonu(sizu1sizv)sizvdepu2*\sum_{v \in son_u}(siz_u-1-siz_v)*siz_v*dep_u

第三段:

n(n1)2uTvsonudepusizv\frac{n(n-1)}2-\sum_{u \in T}\sum_{v \in son_u}dep_u*siz_v