当前位置: 首页 > wzjs >正文

企业搭建pc端网站推广资讯

企业搭建pc端网站,推广资讯,wordpress如何下载,php编程语言树的重心 定义 对于一个树,树的重心定义为:删掉某点 i 后,若剩余 k 个连通分量,那么定义 d(i) 为这些连通分量中点的个数的最大值,所谓重心,就是使得 d(i) 最小的点 i。 基于以上定义,一个树的重…

树的重心

定义

对于一个树,树的重心定义为:删掉某点 i 后,若剩余 k 个连通分量,那么定义 d(i) 为这些连通分量中点的个数的最大值,所谓重心,就是使得 d(i) 最小的点 i

基于以上定义,一个树的重心可能会有一个或者两个。

在这里插入图片描述
如图所示,这棵树无点权、无边权、无向。
假设我们删掉最上面的点,剩下的2个子树大小分别为5和3,那么取较大值d(i)=5
能够使 d(i) 最小的点,则为重心。

求法

dfs求重心代码:(C++)

#include<iostream>
#include<vector>
using namespace std;int n, minw = 999999, res_i = 0;
vector<int> adj[100001];  // 邻接表存储树
int siz[100001], maxv[100001];// 计算子树大小和最大分量值
void dfs(int v, int f) {siz[v] = 1;int maxw = 0;  // 子树中的最大节点数for (int i = 0; i < adj[v].size(); i++) {int next = adj[v][i];if (next == f) continue;dfs(next, v);siz[v] += siz[next];maxw = max(maxw, siz[next]);  // 子树大小}int f_num = n - siz[v];  // 父节点分量大小maxw = max(maxw, f_num);maxv[v] = maxw;// 更新重心if (maxv[v] < minw || (maxv[v] == minw && v < res_i)) {res_i = v;minw = maxv[v];}
}
int main() {cin >> n;int f1, f2;for (int i = 1; i < n; i++) {cin >> f1 >> f2;adj[f1].push_back(f2);  // 邻接表存边(双向)adj[f2].push_back(f1);}dfs(1, 0);cout << res_i << endl;return 0;
}

输入输出样例 #1

输入 #1

4
1 2 
2 3 
3 4

输出 #1

2
http://www.dtcms.com/wzjs/501936.html

相关文章:

  • 做网站公司在哪站长seo查询
  • 网网站开发设计百度账户
  • 棋牌游戏网站怎么做的软文营销常用的方式是什么
  • 搭建网站首页seo排名快速优化
  • 怎么用织梦源代码做网站珠海做网站的公司
  • 济南做网站哪里好不花钱网站推广
  • seo如何根据网站数据做报表云南网站建设百度
  • 专业SEO教程网站深圳百度seo怎么做
  • worldpress英文网站建设小广告怎么能弄干净
  • 网站建设优化河南百度搜索排名服务
  • 网站改版后百度不收录友情连接
  • 网站建站和维护杭州关键词排名提升
  • 专注旅游网站网站开发如何进行搜索引擎优化
  • 网站数据库如何备份淄博seo网站推广
  • h5响应式网站建设优化推广网站怎么做最好
  • wordpress使用php版本外贸seo推广
  • 大数据做网站芒果视频怎样下载到本地
  • 测试网站各地访问速度有哪些可以免费推广的平台
  • 论坛建站哪个比较好如何实施网站推广
  • 怎么做一家网站网络软文
  • 中国招标采购网关键词优化的原则
  • 微网站模板在线百度爱采购优化软件
  • 广西网站建新闻网站软文平台
  • 互联网站建设维护合肥网络推广优化公司
  • 杭州网站建设设计公司哪家好营销互联网推广公司
  • wordpress删除修订版本杭州谷歌seo公司
  • 蚌埠做网站建设费用合肥关键词排名
  • 二级建造师证书查询官网北京网站优化排名推广
  • 广东政府网站集约化平台网上销售平台怎么做
  • 做网站做电脑版还是手机版好云搜索引擎入口