From 93f01dc8c47c50e4f131dd74acbbe7c194ebec7d Mon Sep 17 00:00:00 2001 From: ouuan Date: Sat, 30 Mar 2019 20:14:56 +0800 Subject: [PATCH] add spaces --- docs/ds/tree-decompose.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/ds/tree-decompose.md b/docs/ds/tree-decompose.md index 18468199..770a96a3 100644 --- a/docs/ds/tree-decompose.md +++ b/docs/ds/tree-decompose.md @@ -1,4 +1,4 @@ -# 分块方式 +# 树分块 关于树分块,可以先看一道模板题 [[SCOI2005]王室联邦](https://www.luogu.org/problemnew/show/P2325)。 @@ -8,7 +8,7 @@ 这里先提供一种构造方式,再予以证明: -**dfs,并创建一个栈,dfs一个点时先记录初始栈顶高度,每dfs完当前节点的一棵子树就判断栈内(相对于刚开始dfs时)新增节点的数量是否≥B,是则将栈内所有新增点分为同一块,核心点为当前dfs的点,当前节点结束dfs时将当前节点入栈,整个dfs结束后将栈内所有剩余节点归入已经分好的最后一个块。** +**dfs,并创建一个栈,dfs 一个点时先记录初始栈顶高度,每 dfs 完当前节点的一棵子树就判断栈内(相对于刚开始 dfs 时)新增节点的数量是否 ≥ B,是则将栈内所有新增点分为同一块,核心点为当前 dfs 的点,当前节点结束 dfs 时将当前节点入栈,整个 dfs 结束后将栈内所有剩余节点归入已经分好的最后一个块。** 参考代码: @@ -42,13 +42,13 @@ int main() } ``` -如果你看懂了这个方法的话,每块大小≥B是显然的,下面证明为何每块大小≤3B: +如果你看懂了这个方法的话,每块大小 ≥ B 是显然的,下面证明为何每块大小≤3B: 对于当前节点的每一棵子树: -- 若未被分块的节点数≥B,那么在dfs这棵子树的根节点时就一定会把这棵子树的一部分分为一块直至这棵子树的剩余节点数≤B,所以这种情况不存在。 -- 若未被分块的节点数=B,这些节点一定会和栈中所有节点分为一块,栈中之前还剩 $[0,B-1]$ 个节点,那么这一块的大小为 $[B,2B-1]$ 。 -- 若未被分块的节点数