【WC2014】紫荆花之恋

原题链接:

http://uoj.ac/problem/55

提交记录:

http://uoj.ac/submission/337253

有生之年系列,退役前填坑。。。

做法是用替罪羊树的思想维护动态点分治树,这里不细讲,网上一抓一大把,这里主要谈谈本人的(超大常数)实现细节:

1 我们需要存下点分治树结构,并对于点分树上每个点开一棵平衡树来支持修改及询问。

2 点分树上任意两点距离不可视为相连边权之和,因此点分树上不维护距离。将原树结构存下来,写个倍增LCA来维护距离。

3 点分树重构平衡因子alpha设成0.8较优

4 平衡树建议使用Treap,Splay亲测会TLE。平衡树需要写垃圾回收,不然会MLE。

5 Treap随机权值的事情。。。。为了避免每次重新随机可以一开始随机好存到表里

6 原树和点分树结构的变量名一定要区分好,小心变量名用混

原文地址:https://www.cnblogs.com/lyd729/p/10628853.html