[WC2014]紫荆花之恋

题解:

首先考虑点分治

dis(i,u)+dis(i,v)<=value[u]+value[v]

移项就很容易发现用平衡树可以很简单的维护这个东西

但是有重复,需要在下一层的每个平衡树内减去这个答案

这个时候时间复杂度是nlog^2

现在需要动态加点

假设加这个点不会破坏点分树结构我们就暴力加点

经过log层,查询log复杂度,时间nlog^2

但可能会破坏点分树结构,比如一条链

这时候可以像kd-tree和替罪羊树一样选择重构

具体的:就是max子树*alpha>当前节点 alpha可以自己调一下,大概在0.8左右吧

猜你喜欢

转载自www.cnblogs.com/yinwuxiao/p/9429262.html