Icefox的博客

生活不止眼前的苟且,还有诗和远方。

bzoj5329 [Sdoi2018]战略游戏(圆方树+虚树)

我们搞出圆方树,那么能把两个点x,y分开的点就是树上x,y之间路径上的圆点个数(不包括x,y)。 对于一个集合的点来说就是求这些点任意两点的链的并。 而这就是这些点的虚树的边长和。于是对这些点建出虚树即可。 在连一条虚树上的边(x,y)时,计算这条链对答案的贡献(不含y),最后再加上虚树根的...

2018-06-01 09:48:32

阅读数 339

评论数 0

loj2587「APIO2018」铁人两项(圆方树+树形dp)

我们考虑暴力枚举起点和终点a,c,那么合法的b的就是a到c的所有简单路径的并。 我们搞出圆方树,圆点点权为-1,方点点权为点双大小,那么要求的就是树上圆点a到c的路径和。 所以答案就是圆方树上所有圆点两两之间的路径和。 考虑树形dp解决这个问题。 计算每一个点在多少条路径上即可。 复杂度...

2018-06-01 08:02:40

阅读数 250

评论数 0

uoj30【CF Round #278】Tourists(圆方树+树链剖分+可删除堆)

求一般图两点之间所有简单路径上的点权的最小值。 我们搞出圆方树,原图两点间的所有简单路径的并就对应了圆方树上两点间路径。圆点权值为原点点权,方点权值为这个点双的权值最小值。 树链剖分维护路径最小值即可。 但是这样修改一个点的点权时可能需要修改一堆方点,复杂度会爆炸。 于是一个小trick,...

2018-05-31 20:33:21

阅读数 154

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭