![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
最近公共祖先
WerKeyTom_FTD
我是一只来自中山纪念中学高三的oier,请多多指教
展开
-
宝藏
题目大意及模型转换给定一颗由N个结点组成的树,并有q组询问,每个询问给定a0,a1…ap,求初始站在a0,接下来去a1,再去a2,一直到ap的期望耗时。每条边经过需要花费一个单位时间,站在一个点上,下一步走动会随机等概率选择一个相邻结点。暴力作法显然答案为每一对从ai到ai+1的期望时间之和。那么我们每次将ai当作根,开始搜索。每一个点我们都设出它前往ai+1的期望时间,然后通过递归处理解出方程,将原创 2015-09-21 22:05:34 · 782 阅读 · 0 评论 -
LCA模板
我需要时要来抄QAQ原创 2016-03-03 18:21:08 · 521 阅读 · 0 评论 -
[bzoj4326][NOIP2015]运输计划
题目大意树上有许多条路径,现在你可以将一条边的权值设为0,令所有路径的最大值最小。最长路径瓶颈我们注意到,设为0的边如果不在最长路径上,就不会减小答案。 因此我们可以找出最长路径,把原树转化为一条链+许多树的模型。 预处理出每个点i的from[i]表示由链上哪个点延伸的。 接下来我们可以枚举将链上哪条边变为0,则经过这条边的最长路径一定是最长链,我们只需维护出不经过这条边的最长路径。这个显然可原创 2015-11-13 21:29:56 · 1264 阅读 · 0 评论 -
[51nod 1766]树上的最远点对
题目大意给定一棵树,m个询问每次询问从a~b选一个结点并从c~d选一个结点使这两个结点距离最大。结论根据树的直径性质我们得到一个结论: 一个集合中的直径两端点一定被分成两个非空集合后两条直径的四个端点包含。 于是线段树维护。 注意你求lca不能倍增,应该用RMQ求。 RMQ求LCA的方法:得到树的欧拉序与对应深度序,设fi[x]表示结点x最早出现在欧拉序中的位置。假若满足fi[x]<=z<=原创 2016-06-30 16:38:01 · 1330 阅读 · 0 评论