|
|
|
@ -130,7 +130,7 @@ int main() {
|
|
|
|
|
|
|
|
|
|
## 三、树的重心
|
|
|
|
|
|
|
|
|
|
#### [$C$. $Link$ $Cut$ $Centroids$](https://codeforces.com/contest/1406/problem/C)
|
|
|
|
|
#### [$CF1406C$. $Link$ $Cut$ $Centroids$](https://codeforces.com/contest/1406/problem/C)
|
|
|
|
|
> **账号**:$10402852@qq.com$ **密码**:$m****2$
|
|
|
|
|
> **关键词**:**求树的重心**
|
|
|
|
|
|
|
|
|
@ -160,10 +160,8 @@ int main() {
|
|
|
|
|
|
|
|
|
|
1、先任选一个结点作为根节点(比如$1$号节点),把无根树变成有根树。然后设$sz[i]$表示以$i$为根节点的子树节点个数。转移方程为$\displaystyle sz[u]=\sum_{son[u]=v} (sz[v])$
|
|
|
|
|
|
|
|
|
|
2、设$son[u]$表示删去节点$u$后剩下的连通分量中最大子树节点个数。其中一部分在原来$u$其为根的子树。
|
|
|
|
|
$$son[u]=\max_{\substack{v \in son[u]}}(son[u],sz[v])$$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2、设$son[i]$表示删去节点$u$后剩下的连通分量中最大子树节点个数。其中一部分在原来$i$其为根的子树。
|
|
|
|
|
$$son[i]=\max_{\substack{j \in son[i]}}(son[i],sz[j])$$
|
|
|
|
|
|
|
|
|
|
另外一部分在$i$的 **上方** 子树有$n-sz[i]$个。
|
|
|
|
|
$$son[i]=max(son[i],n-sz[i])$$
|
|
|
|
@ -242,5 +240,5 @@ signed main() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|