摘要: 已更新 一句话题意:给棵树,有点权有边权 单点修改点权,维护带权重心 观察了各位dalao的博客依旧是没看透彻。。。 最后观察了gxz大佬把代码写完的... 我们先跑一遍点分治,建点分树(代码里的father数组) 跑一遍dfs,预处理倍增lca求dis(代码里的fa,depth,dis数组) 对于 阅读全文
posted @ 2019-01-07 21:51 ghj1222 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 给定一棵N个点的树,求树上一条链使得链的长度乘链上所有点中的最小权值所得的积最大。 其中链长度定义为链上点的个数。 有点分治/边分治做法,懒得写了。本题用并查集即可轻松水过 将点按照权值从大到小排序依次加点,维护每个点所在连通块的直径端点,合并的时候就是C(4,2)=6选一下即可 然后将直径 这个点 阅读全文
posted @ 2019-01-07 18:43 ghj1222 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 给定一个无向图,点有点权边有边权 Q次询问,每次询问从点v开始只经过边权 using namespace std; struct edge { int u, v, w; } a[500010]; int n, m, q; int h[200010], dfn[200010], dfntot; int 阅读全文
posted @ 2019-01-07 07:13 ghj1222 阅读(428) 评论(0) 推荐(0) 编辑