2025年CF686D. Kay and Snowflake[树的重心]

CF686D. Kay and Snowflake[树的重心]http codeforces com contest 686 problem D 这道题的题面很直接 就是求一树的中心 我们可以用两个 dfs 来解决掉 首先一个树的重心的定义 以这个点为根 那么所有的子树 不算整个树自身 的大小都不超过整个树大小的一半 重心还有一个性质就是如果将子树的重心向上移动 总会移动到整个树的重心

大家好,我是讯享网,很高兴认识大家。

http://codeforces.com/contest/686/problem/D

这道题的题面很直接,就是求一树的中心。我们可以用两个dfs来解决掉。

首先一个树的重心的定义:以这个点为根,那么所有的子树(不算整个树自身)的大小都不超过整个树大小的一半。


讯享网

重心还有一个性质就是如果将子树的重心向上移动,总会移动到整个树的重心

第一个dfs先求出每个子树的大小和每个节点最大的子树大小,第二遍先求出来子树的重心,之后将最大的子树重心向上移,找到之后记录重心,查询的时候直接输出就行

#include <bits/stdc++.h> #define ll long long using namespace std; const int maxn = 3e5+5; vector<

讯享网
小讯
上一篇 2025-03-22 19:10
下一篇 2025-02-09 07:15

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/58249.html