随笔分类 -  树上问题—动态点分治

摘要:动态点分治好题 首先我们考虑一个暴力做法: 每次修改之后选一个点作为根搜索整棵树,然后换根dp即可 考虑每次换根时,移向的点的消耗会减少子树代价之和*边权,而其余部分代价会增加剩余代价*边权 这样每次换根都是O(1)的,总时间复杂度O(nm),可以通过...20分! 贴代码: 然后我们考虑正 阅读全文
posted @ 2019-07-09 20:48 lleozhang 阅读(194) 评论(0) 推荐(0) 编辑
摘要:首先仍然是点对之间的问题,让我们考虑点分 由于带修改,所以考虑动态点分治 所谓动态点分治,就是在操作之前先模拟一遍点分治的过程构造出一棵新的树,我们称这棵树为点分树,由于这棵树树高是对数级别的,所以修改的时候可以在一条树链上暴力修改 然后考虑本题怎么维护: 首先我们考虑答案如何统计:在统计答案时,我 阅读全文
posted @ 2019-07-09 19:23 lleozhang 阅读(215) 评论(0) 推荐(0) 编辑
摘要:和上一题很像,而且这题直接给出了单点修改和区间查询,所以还是两棵线段树容斥即可 阅读全文
posted @ 2019-04-30 15:35 lleozhang 阅读(175) 评论(0) 推荐(0) 编辑
摘要:动态点分治裸题 首先介绍一下动态点分治:就是带修改操作的点分治(废话) 操作涉及单点查询和区间修改 那么首先应该想到线段树 但是怎么操作呢? 首先,修改一个点时的影响范围可以分为上下两部分:一部分在自己的子树内,另一部分通过自己的父节点传上去或传到其他子树内 那么为了使这种操作复杂度尽可能低,我们用 阅读全文
posted @ 2019-04-30 15:33 lleozhang 阅读(173) 评论(0) 推荐(0) 编辑

levels of contents
点击右上角即可分享
微信分享提示