
树分治
文章平均质量分 93
点分治、边分治、链分治
ez_lcw
这个作者很懒,什么都没留下…
展开
-
【XSY3490】线段树(广义线段树,树上莫队)
题面线段树题解本题分两 Part 走。Part 1我们需要解决: 如何在广义线段树上快速区间定位节点。对于有 nnn 个叶子节点、共 2n−12n-12n−1 个节点的广义线段树 AAA,我们定义 maxrlmaxr_lmaxrl 表示 AAA 中所有以 lll 为左端点的区间的右端点的最大值,minlrminl_rminlr 为 AAA 中所有以 rrr 为右端点的区间的左端点的最小值。然后再定义 LLL 树和 RRR 树,LLL 树中点 lll 对应 AAA 树中的点 [l,maxrl]原创 2021-12-25 17:52:53 · 1044 阅读 · 1 评论 -
【XSY3338】game(期望,点分治,FFT)
题面game题解首先可以看出 “等概率选连通块->连通块内等概率选点” 相当于 “全局等概率选点”。一开始感觉无从下手,但是题目中还是给了一点提示。题目让我们输出答案乘 n!n!n! 后的结果,于是想到枚举一个 1∼n1\sim n1∼n 的排列 pip_ipi 表示依次选择并删除的点的序列。那么对于某一个特定的 pip_ipi,这种删点方法中所有点被捶的总次数等于 ∑i=1n(pi所在连通块还剩下的点数)\sum\limits_{i=1}^n (p_i所在连通块还剩下的点数)i=1∑n原创 2021-09-16 22:08:59 · 120 阅读 · 0 评论 -
树上连通有关背包:【BZOJ4182】shopping &【HDU6566】The Hanged Man
选这两道题是因为这两道题都是树上背包,而且选的点的要求都与连通性有关,而且都是按 dfs 序 DP 来模拟不断加入物品,而且都能用树剖和点分治优化(不过优化的点一个跟子树大小有关一个跟深度有关),比较相似。【BZOJ4182】shopping题意:树上多重背包,要求选了的点是一个连通块。暴力想法设 fu,if_{u,i}fu,i 表示选了以 uuu 为根且在 uuu 子树内的连通块,花费为 iii 的最大收益。如果使用暴力合并子树的方法的话,时间复杂度 O(nm2)O(nm^2)O(nm2),而且原创 2021-08-25 22:25:29 · 296 阅读 · 1 评论 -
【XSY3971】不难题(点分治)
题面不难题题解百年未有之写点分……好久没写了,也当复习了一遍吧。对于树上的一个扫描半径为 ddd 的在 uuu 节点的雷达,我们将其所能覆盖到的点的集合称作 “圆 (u,d)(u,d)(u,d)”。那么题目就是询问有多少个点至少被 kkk 个给定的圆中的 k−1k-1k−1 个圆的交集包含。显然,对于两个圆 (A,da)(A,d_a)(A,da) 和 (B,db)(B,d_b)(B,db),我们容易得到它们的交:若这两圆相离,那么它们的交为空集。若这两圆中其中一个包含另一个,那原创 2021-05-19 14:10:43 · 173 阅读 · 2 评论 -
【ZJOI2007】捉迷藏(动态树分治)
显然只有一次询问的话,可以用点分治来实现。但是现在我们有多组询问,还带有修改,我们只能通过动态点分治来做了。动态点分治的主要思想:省去每次点分治求重心的过程,直接预处理出来(因为树的形态不会改变),建立点分树。那么我们每次分治时只需按照点分树上的路径走就是了。例如,对于这么一颗树:(样例,1为根)(感谢绘图网站https://csacademy.com/app/graph_editor/)...原创 2019-12-07 11:02:43 · 212 阅读 · 0 评论