首页 > 其他 > 详细

[WC2014]紫荆花之恋

时间:2018-08-06 11:32:04      阅读:139      评论:0      收藏:0      [点我收藏+]

题解:

首先考虑点分治

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

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

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

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

现在需要动态加点

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

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

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

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

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

[WC2014]紫荆花之恋

原文:https://www.cnblogs.com/yinwuxiao/p/9429262.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!