【ccf-csp题解】第四次csp认证-第四题-网络延时-树的直径

news2025/1/13 7:56:25

题目描述

思路分析

本题所求的实际上是树的直径,即树中的任意两个结点之间的最大距离

采用的方法是dfs

从根节点开始遍历,对于每一个被dfs的结点m,返回此结点m到所有叶子结点的距离最大的那个即d1,同时在dfs过程当中记录结点m到所有叶子结点的距离第二大的那个,即d2

那么最终答案就是对于每一个结点取res=res(res,d1+d2)

举个栗子:

设最下面的1--4的编号分别为5,6,7,8

从1开始dfs,首先进入2,然后对2dfs,进入3,然后对3进行dfs,对3dfs的时候,又进入5,对5dfs,此时由于结点5没有分支,所以这一次dfs得到d1=d2=0,返回给结点3的值为d1+1=1,之后3也算dfs完毕,结果:d1=1,d2=0,返回给2的值为d1+1=2,然后开始对4dfs,此时会进入下一层,依次对6,7,8进行dfs均返回d1+1=1,所以对于4dfs的结果是d1=1,d2=1,返回给2的值为2,所以最终2dfs结果是d1=2,d2=2,此时得到ans最大值:d1+d2=4.返回给结点1的值为d1+1=3,所以对1dfs完毕得到的结果是d1=3,d2=0,最终返回的结果为d1+1=4,同时保留答案ans=4

最后再提示一下,虽然树的本质是无向图,但是在建立边的时候,直接建成从上往下指的有向边即可,因为dfs的时候是从上往下的。当然建立成无向边也可以,只不过需要一个bool数组标记已经遍历过的结点,防止进入无限循环。

满分代码

#include<iostream>
#include<cstring>
using namespace std;
const int N=20010;
int e[N],ne[N],h[N],idx;
int n,m;
int ans;
void add(int a,int b)
{
	e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
int dfs(int u)
{
	int d1=0,d2=0;
	for(int i=h[u];i!=-1;i=ne[i])
	{
		int j=e[i];
		int d=dfs(j);
		if(d>=d1)d2=d1,d1=d;
		else if(d>=d2)d2=d;
	}
	ans=max(ans,d1+d2);
	return d1+1;
}
int main()
{
	scanf("%d%d",&n,&m);
	memset(h,-1,sizeof h);
	for(int i=2;i<=n+m;i++)
	{
		int x;
		scanf("%d",&x);
		add(x,i);
	}
	dfs(1);
	cout<<ans;
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/998824.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

修改conda 虚拟环境下的PS1提示符格式

问题&#xff1a; 终端命令提示符太长了&#xff0c;严重影响工作效率 解读办法&#xff1a; conda env config vars set PS1(nyang)[\u\h \W]$效果&#xff1a; so beautiful !!!

【Redis】4、rsync远程同步

与inodify结合使用&#xff0c;实现实时同步 rsync简介 rsync&#xff08;Remote Sync&#xff0c;远程同步&#xff09;是一个开源的快速备份工具&#xff0c;可以在不同主机之间镜像同步整个目录树&#xff0c;&#xff1b;支持增量备份&#xff0c;并保持链接和权限&#…

四叶草clover配置工具:Clover Configurator for Mac

Clover Configurator是一款Mac上的工具&#xff0c;用于配置和优化Clover引导加载器。Clover引导加载器是一种用于启动macOS的开源引导加载器。它允许用户在启动时选择操作系统和配置启动选项。 Clover Configurator提供了一个可视化的界面&#xff0c;让用户可以轻松地编辑和…

极光笔记 | 推送服务数据中心选择:合规性与传输效率的双重考量

随着全球化进程的深入&#xff0c;跨境数据传输与存储问题已经变得愈发重要。推送服务的数据中心节点选择不仅关乎数据访问速度和用户体验&#xff0c;同时也直接牵扯到数据合规性和安全保障。EngageLab Push深知这一点&#xff0c;为了满足更多国际客户和全球用户触达需求&…

uniapp打包安卓apk的隐私政策配置

uniapp打包安卓端app的隐私政策配置 1、隐私政策配置位置 2、uniapp项目配置文件代码 androidPrivacy.json {"version" : "1","prompt" : "template","title" : "用户服务协议和隐私政协议","message&quo…

JAVASE事件监听

代码&#xff1a; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner;import javax.swing.JButton; import javax.…

管理类联考——数学——汇总篇——知识点突破——应用题——最值问题

⛲️ 一、考点讲解 最值问题是应用题中最难的题目&#xff0c;也是考生普遍丢分的题目。最值问题一般要结合函数来分析&#xff0c;一般结合二次函数和平均值定理求解。最值问题的求解步骤是&#xff1a;先设未知变量&#xff0c;然后根据题目建立函数表达式&#xff0c;最后利…

HT for Web (Hightopo) 使用心得(1)- 基本概念

Hightopo 公司 3D 可视化产品有对应的官方手册。但是这些手册内容比较多。对于想学习的新同学来说可能相对比较繁琐。这里本人根据个人使用经验做了一些总结。希望对读者有所帮助。 本文会提到一些前端开发的概念&#xff0c;如 H5, JavaScript&#xff0c;JSON 等。没有开发经…

【linux input子系统-01】核心层、事件处理层、设备驱动层

简介 input子系统的三层&#xff1a; 核心层&#xff1a;为事件处理层、设备驱动层提供接口&#xff0c;并在input_handler和input_dev之间建立关联&#xff1b;事件处理层&#xff1a;内核对象对应input_handler&#xff0c;用于接收-解析-处理设备驱动层上报的输入事件&…

借助VScode将 Docker 容器用作开发环境

参考 借助 Visual Studio Code 将 Docker 容器用作开发环境 - Training | Microsoft Learn 存在的问题 Remote-SSH XHR failed无法访问远程服务器 【VScode】Remote-SSH XHR failed无法访问远程服务器_SuperSources的博客-CSDN博客 可能是网络问题&#xff0c;打开vpn 就可以正…

探索GreatADM:如何快速定义监控

引文 在数据库运维过程中&#xff0c;所使用的运维管理平台是否存在这样的问题&#xff1a; 1、默认监控粒度不够,业务需要更细颗粒度的监控数据。2、平台默认的监控命令不适合,需要调整阈值量身定制监控策略。3、不同类型的实例或组件需要有不同的监控重点,但管理平台监控固…

【云原生】kubectl常用命令大全

目录 一、资源管理方法 kubectl 的命令大全 二、 kubectl常用命令大全 2.2 项目的生命周期&#xff1a;创建-->发布-->更新-->回滚-->删除 1、创建 kubectl create命令 2、发布 kubectl expose命令 3、更新 kubectl set 4、回滚 kubectl rollou…

什么是实时监控系统?

监控报警器在工业生产和电子行业中广泛应用。其中包括数据收发器、多功能监控报警器、人体接地监控器、手腕带监控报警器等等。 通过网络把“静电监测设备”、“接地监控报警器”、“数据转换器”、“计算机”等设备连接起来&#xff0c;连接成一个完整的静电实时监控系统。缺一…

u盘制成系统盘之后如何让恢复普通盘

U盘装完pe后怎么还原成普通U盘 1.插入U盘&#xff0c;按WindowsR 输入diskpart 2.输入“list disk”回车&#xff0c;查看U盘代号&#xff0c;例如下图里我的U盘代号是磁盘1&#xff08;你的不一定是1&#xff0c;一定要分清楚&#xff09; 3.输入“select disk 2”选中U盘磁…

2 亿 + 数据打开方式:人工智能数字疗法

你今天真好看 APP:您好&#xff0c;我们目前是一个大学生创新项目团队&#xff0c;内容为针对青少年痤疮问题的「人工智能数字疗法」。目前正在进行 AI 诊断模型的训练&#xff0c;看到您产品的信息并且开放了数据库&#xff0c;我们想知道&#xff1a;如何才能使用贵公司的数据…

PDF文件太大怎么办?三招教会你PDF文件压缩

PDF文件太大怎么办&#xff1f;这是许多人在处理PDF文件时遇到的问题。为了帮助大家解决这个问题&#xff0c;下面总结了三个可以解决PDF文件过大问题的方法&#xff0c;需要的朋友抓紧来看看吧~ 方法一&#xff1a;使用嗨格式压缩大师 嗨格式压缩大师是一款功能强大的PDF压缩…

蓝牙资讯|苹果计划为AirPods耳机带来体温测量、听力测试功能

彭博社马克・古尔曼透露&#xff0c;苹果计划最早在 2024 年为 AirPods 和 AirPods Max 带来 USB-C 端口古尔曼称&#xff0c;该公司显然正在努力将其所有基于 Lightning 接口的配件改用 USB-C 接口。其中&#xff0c;AirPods Pro 将率先改用新接口&#xff0c;该产品将与 iPho…

php webuploader 大文件上传带进度条

1&#xff0c;先下载百度的webuploader js上传框架 链接&#xff1a;https://pan.baidu.com/s/1Kxct0rIkasuTWv_jIzZkRA 提取码&#xff1a;c9q7 index.html <!DOCTYPE html> <html><head><meta charset"utf-8"><title></…

asp.net+sqlserver+c#学生作品展示及评分系统

&#xff08;1&#xff09;基本框架&#xff1a;登陆、作品浏览、作品评分、作品查询、作品管理 &#xff08;2&#xff09;模块管理&#xff1a; ①登录模块&#xff1a;注册、登陆、退出 ②作品浏览&#xff1a;查看展示作品 ③作品管理&#xff1a;增加、删除&#xff0c;修…

谷沁清益生菌清口含片,守护口腔健康的第一道防线

根据第四次全国口腔健康流行病学调查显示&#xff0c;我国有高达97%的成人遭受口腔问题困扰。 在2022年发布的《全民口腔健康计划》口腔健康白皮书中&#xff0c;民众尤为突出的口腔问题为龋齿、牙周病。其中龋齿患病率高达67.5%&#xff0c;牙周疾病紧随其后&#xff0c;患病…