[WC2014]紫荆花之恋

题解:

首先考虑点分治

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

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

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

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

现在需要动态加点

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

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

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

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

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

posted @ 2018-08-06 11:18  尹吴潇  阅读(246)  评论(0编辑  收藏  举报