2207 - 树的中心

news/2025/3/23 19:57:28/

 

 

 **2207 - 树的中心 **来源:  东方博宜oj   oj.czos.cn**思路:先求树的直径,再求直径的中间点(即中心)#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,x,y,k;
int fa[N],dep[N],pre[N];
struct node
{int from,to,next;
}a[N*2];               // N*2的原因:无向图
void add(int u,int v)
{++k;a[k].from=u;a[k].to=v;a[k].next=pre[u];pre[u]=k;
}
// 深搜求父子关系及深度
void dfs(int x,int f)
{fa[x]=f;dep[x]=dep[f]+1;for(int i=pre[x];i!=0;i=a[i].next){if(a[i].to!=f) dfs(a[i].to,x);}
}
int main()
{cin>>n;for(int i=1;i<=n-1;i++){cin>>x>>y;add(x,y);add(y,x);}dfs(1,0);x=1;for(int i=2;i<=n;i++){if(dep[i]>dep[x]) x=i;}dfs(x,0);y=1;for(int i=2;i<=n;i++){if(dep[i]>dep[y]) y=i;}// 此时x和y是直径的两个端点int d=dep[y];if(d%2) //如果深度为奇数,中心点有一个{for(int i=1;i<=d/2;i++) y=fa[y];cout<< y;}else  //如果深度为偶数,中心点有两个{for(int i=1;i<=d/2-1;i++) y=fa[y];if(y<fa[y]) cout<< y<< " "<< fa[y];else cout<< fa[y]<< " "<< y;}return 0;
}


http://www.ppmy.cn/news/759215.html

相关文章

【多式联运】遗传算法求解多式联运冷链运输成本优化问题【含Matlab源码 2207期】

⛄一、联运运输简介 1 引言 运输问题(Transportation Problem)是一类特殊的线性规划问题,最早是由Hichcock于1941年提出的,由于它不仅能解决物资的合理调运和车辆的合理调度,而且许多实际问题如生产存储问题、工厂选址问题等经过适当变换后可转化为运输问题进行求解,一些理论问…

2207 字符串中最多数目的子字符串(递推)

1. 问题描述&#xff1a; 给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 pattern &#xff0c;两者都只包含小写英文字母。你可以在 text 中任意位置插入一个字符&#xff0c;这个插入的字符必须是 pattern[0] 或者 pattern[1] 。注意&#x…

Linux下载

想安装linux&#xff0c;但是很多资源都是私人云盘&#xff0c;下面就来说明官网下载的教程 官网地址&#xff1a;https://www.centos.org/ 链接直通车 进入后 如下界面&#xff0c;点击进入Donwload ps&#xff1a;&#xff08;进入时间参照2022-11-29&#xff09; 进入后…

下载centOS,下载各种linux版本的镜像,来这里!

下载各种版本的linux版本&#xff0c;推荐华为云下载&#xff0c;速度快 http://mirrors.tuna.tsinghua.edu.cn/ 阿里云镜像站 http://mirrors.aliyun.com/ 阿里云镜像站 http://mirrors.huaweicloud.com/ 华为镜像站 http://mirrors.nju.edu.cn/ 南京大学镜像站 http://mirro…

CentOS 7镜像下载 以及 DVD ISO 和 Minimal ISO 等各版本的区别介绍

官网下载 官网下载地址&#xff1a;http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso 点击进入下载页面&#xff0c;随便选择一个下载即可&#xff08;不推荐&#xff0c;推荐网易开源镜像或者阿里云这些国内开源镜像网站下载&#xff0c;见下…

【Linux操作系统】——配置安装系统环境

Linux操作系统——配置安装系统环境 这里Linux我们使用发行版的Centos7.6版本 简单介绍一下Centos&#xff1a; CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。每个版本的 CentOS都会获得十年的支持&#xff08;通过安全更新方式&#xff09;。…

2207. 字符串中最多数目的子字符串

leetcode力扣刷题打卡 *题目&#xff1a;2207. 字符串中最多数目的子字符串 描述&#xff1a;给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 pattern &#xff0c;两者都只包含小写英文字母。 你可以在 text 中任意位置插入 一个 字符&#…

LeetCode 2207. 字符串中最多数目的子字符串

题目链接&#xff1a; 力扣https://leetcode-cn.com/problems/maximize-number-of-subsequences-in-a-string/ 【分析】由于pattern中只有两个字符&#xff0c;假设分别是a、b&#xff0c;只需要统计出text中每个a后面有多少b即可&#xff0c;这儿这个通过后缀和的思想&#x…