4329 树的连边II
通过链式前向星来求树的直径
主要包括:链式前向星的初始化,遍历,使用
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const int N=1e5+9;
int n,head[N],to[N<<1],nx[N<<1],cnt=0;
int ans=0;
int dp[N][2];//表示i子树的最长链和次长链void add(int x,int y)
{++cnt;nx[cnt]=head[x];head[x]=cnt;to[cnt]=y;return ;//返回
}//for循环说明
//head[i]:初始条件
//nx[i]:当前节点是否有子结点(是否存在其他边)
//to[i]:边i指向的节点编号
//dfs(x,y)以x为子结点,y为父节点的搜索
//循环的条件:当前节点还有边(i)
void dfs(int x,int fa)
{for(int i=head[x];i;i=nx[i])//i=nx[i]{//在循环结束之后并不是i=nx[i]//然后i=head[i] 。这个条件是一个初始化,之后的更新都是i=nx[i];int y=to[i];if(y==fa)continue;dfs(y,x);//dfs放在更新状态的前面//程序运行的时候对于一个子结点完成遍历//然后状态更新,接着是下一个子结点if((dp[y][0]+1)>dp[x][0]){dp[x][1]=dp[x][0];dp[x][0]=dp[y][0]+1;}else if((dp[y][0]+1)>dp[x][1]){dp[x][1]=dp[y][0]+1;}}return ;
}int main()
{cin>>n;for(int i=2;i<=n;i++){int x,y;cin>>x>>y;add(x,y);add(y,x);
}dfs(1,0);for(int i=1;i<=n;i++) ans=max(ans,dp[i][1]+dp[i][0]+1);cout<<ans-1<<endl;return 0;
}
相关文章:
4329 树的连边II
通过链式前向星来求树的直径 主要包括:链式前向星的初始化,遍历,使用 #include<bits/stdc.h> using namespace std; using lllong long; const int N1e59; int n,head[N],to[N<<1],nx[N<<1],cnt0; int ans0; int dp[N][2…...
Spring的Bean详解=Bean别名+作用范围+使用场景
目录 Bean的别名:id和name的地位等同 Bean的作用范围:scope单例与非单例 Bean的使用场景:什么时候交给容器?什么时候不交? Bean的别名实践(含代码) 如果看不懂下面的,例如不知道i…...
聊一聊如何适应AI时代
我的工作行业就不提了,处于AI的前沿阵地之一,AI的进步非常惊艳,虽然我对AI持有开放态度,但也恐惧,因为我的进步跟不上它迭代的速度。 AI能涉及的行业:辅助驾驶、医疗诊断、数据分析、文稿生成、工业控制...…...
dl学习笔记:(4)简单神经网络
(1)单层正向回归网络 bx1x2z100-0.2110-0.05101-0.051110.1 接下来我们用代码实现这组线性回归数据 import torch x torch.tensor([[1,0,0],[1,1,0],[1,0,1],[1,1,1]], dtype torch.float32) z torch.tensor([-0.2, -0.05, -0.05, 0.1]) w torch.…...
电商项目高级篇08-springCache
电商项目高级篇08-springCache 1、整合springCache2、Cacheable细节设置 1、整合springCache 1、引入依赖 <!--引入springCache--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifa…...
4.1 AI 大模型应用最佳实践:如何提升 GPT 模型使用效率与质量
AI 大模型应用最佳实践:如何提升 GPT 模型使用效率与质量 随着人工智能技术的不断进步,GPT系列大模型已经成为了自然语言处理领域的核心工具。无论是在文本生成、对话系统,还是内容创作等领域,GPT模型都展现出了强大的能力。然而,要高效、精确地使用这些模型,仍然需要一…...
Linux top命令cpu使用率计算底层原理
在Linux中,top命令通过读取内核提供的统计数据来计算CPU使用率。其底层原理可以概括为以下几步: 1. 读取 /proc/stat top命令主要从/proc/stat文件中获取CPU的统计信息。这个文件包含了每个CPU核心(或所有核心合计)的各种状态下的…...
vue知识点总结
vue2知识点总结 watch: watch 是 Vue 提供的一个选项,它允许你观察 Vue 实例上的数据变化。当观察的数据发生变化时,会执行相应的回调函数,这样你就可以对数据的变化做出响应,执行一些特定的操作。 export default {data() {re…...
[实现Rpc] 环境搭建 | JsonCpp | Mudou库 | callBack()
目录 1. 项目介绍 2. 技术选型 3. 开发环境和环境搭建 Ubuntu-22.04环境搭建 1. 安装 wget(一般情况下默认会自带) 2. 更换国内软件源 ① 备份原始 /etc/apt/sources.list 文件 ② 编辑软件源文件 ③ 更新软件包列表 3. 安装常用工具 3.1 安装…...
llamafactory使用8张昇腾910b算力卡lora微调训练qwen2-72b大模型
说明 我需要在昇腾服务器上对Qwen2-72B大模型进行lora微调,改变其自我认知。 我的环境下是8张910B1卡。显存约512GB。 准备:安装llamafactory 请参考官方方法安装llamafactory:https://github.com/hiyouga/LLaMA-Factory 特别强调下&…...
C++,设计模式,【目录篇】
文章目录 1. 简介2. 设计模式的分类2.1 创建型模式(Creational Patterns):2.2 结构型模式(Structural Patterns):2.3 行为型模式(Behavioral Patterns): 3. 使用设计模式…...
《目标检测数据集下载地址》
一、引言 在计算机视觉的广袤领域中,目标检测宛如一颗璀璨的明星,占据着举足轻重的地位。它宛如赋予计算机一双锐利的 “眼睛”,使其能够精准识别图像或视频中的各类目标,并确定其位置,以边界框的形式清晰呈现。这项技…...
C 语言的void*到底是什么?
一、void* 的类型任意性 void* 是一种通用指针类型。它可以指向任意类型的数据。例如,它可以指向一个整数(int)、一个浮点数(float)、一个字符(char)或者一个结构体等。在C语言中,当…...
Linux中的文件上传和下载
Linux中的文件上传和下载 一、连接 SFTP 在 SecureCRT 中,将鼠标移动到连接窗口的标题上,按鼠标右键,选择“连接 SFTP”标签,即可进入 SFTP 模式。 二、基本指令及用途 1. 显示当前目录 显示本地当前目录:lpwd 示例…...
DDD - 微服务落地的技术实践
文章目录 Pre概述如何发挥微服务的优势怎样提供微服务接口原则微服务的拆分与防腐层的设计 去中心化的数据管理数据关联查询的难题Case 1Case 2Case 3 总结 Pre DDD - 软件退化原因及案例分析 DDD - 如何运用 DDD 进行软件设计 DDD - 如何运用 DDD 进行数据库设计 DDD - 服…...
fgets、scanf存字符串应用
题目1 夺旗(英语:Capture the flag,简称 CTF)在计算机安全中是一种活动,当中会将“旗子”秘密地埋藏于有目的的易受攻击的程序或网站。参赛者从其他参赛者或主办方偷去旗子。 非常崇拜探姬的小学妹最近迷上了 CTF&am…...
鸿蒙动态路由实现方案
背景 随着CSDN 鸿蒙APP 业务功能的增加,以及为了与iOS、Android 端统一页面跳转路由,以及动态下发路由链接,路由重定向等功能。鸿蒙动态路由方案的实现迫在眉睫。 实现方案 鸿蒙版本动态路由的实现原理,类似于 iOS与Android的实…...
Spring-boot3.4最新版整合swagger和Mybatis-plus
好家伙,今天终于开始用spring-boot3开始写项目了,以后要彻底告别1.x和2.x了,同样的jdk也来到了最低17的要求了,废话不多说直接开始 这是官方文档的要求jdk最低是17 maven最低是3.6 一. 构建工程,这一步就不需要给大家解释了吧 二. 整合Knife4j 1.大于…...
基于Java的高校实习管理平台
基于Java的高校实习管理平台是一个专为高校设计的信息化管理工具,旨在通过信息化手段简化实习管理流程,提高管理效率,增强学校、企业与学生之间的沟通与协作。: 一、系统背景与意义 随着教育体系的不断完善和就业市场的日益竞争…...
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之一维数组(应用技巧)
二、一维数组应用技巧2:打标记 实战训练1—开关灯 问题描述: 有 M个从1到M依次编号的人参加一项游戏。将K 盏从1到K依次编号的灯(K和M均为正整数,M≤K≤5000)进行一系列的熄灭与打开的操作,游戏开始时均处于亮灯的状态…...
ISE仿真流程详解:从Verilog代码到Isim仿真的完整指南
1. ISE仿真流程概述 第一次接触FPGA开发的朋友们,常常会被复杂的工具链和仿真流程搞得晕头转向。今天我就以最常用的ISE设计套件为例,手把手带大家走完从Verilog代码编写到Isim仿真的完整流程。这个教程特别适合刚入门FPGA的开发者,我会尽量避…...
磁珠在电源端必须加电容?一个容易被忽略的EMI设计细节与避坑指南
磁珠在电源端必须加电容?一个容易被忽略的EMI设计细节与避坑指南 在高速电路设计中,电磁干扰(EMI)问题往往成为工程师的噩梦。特别是当电路板上集成了Camera模块、RF收发器或其他敏感模拟电路时,电源线上的噪声就像隐形…...
【CANNBot学习周】4.13~4.16入门课程来袭
经历了上一期“CANNBot发布:畅享算子开发新体验”,相信你对解锁智能化昇腾CANN算子开发已经跃跃欲试。 CANNBot学习周入门课程来袭,包含4门从易到难的实操课程,带你从 0 到 1 掌握核心技能!课程覆盖Ascend C、PyPTO和…...
八大网盘直链下载助手终极指南:告别限速,一键获取高速下载地址
八大网盘直链下载助手终极指南:告别限速,一键获取高速下载地址 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / …...
办公Agent的CI/CD时刻到来了
关注腾讯云开发者,一手技术干货提前解锁👇还记得手动部署的古早编程时代吗?代码写完,打个 tar 包,开 FTP 传到服务器上,SSH 进去解压,改配置文件,重启服务,刷一下页面祈祷…...
龙虾白嫖指南,请查收~胃
1. 什么是 Apache SeaTunnel? Apache SeaTunnel 是一个非常易于使用、高性能、支持实时流式和离线批处理的海量数据集成平台。它的目标是解决常见的数据集成问题,如数据源多样性、同步场景复杂性以及资源消耗高的问题。 核心特性 丰富的数据源支持&#…...
13.将手写 Agent 主流程迁移为 LangGraph 最小闭环,并接回 FastAPI + session 外壳
目 录前 言开始动手项目结构重构数据State化函数Node化串起Node形成Graph收尾前 言 咱们前面的代码是通过手写Agent工作流程,实现了一个论文RAG问答系统,但是在实际生产环境中不会用这种纯手写工作逻辑项目,更多的是使用现有框架比如LangGra…...
RS485 RE、DE
在RS485通信中,RE 和 DE 是两个关键的控制引脚,用于管理收发器的数据流向,是实现半双工通信的核心。 引脚定义与功能引脚名称全称功能描述典型电平逻辑REReceive Enable(接收使能)控制接收器的使能与否。低电平有效&am…...
手把手教你用QT设计FPGA图像接收器:从UDP数据包到实时显示窗口的完整流程
QTUDP实现FPGA图像接收器的工程实践指南 在工业视觉检测、医疗影像传输等实时性要求较高的场景中,FPGA与PC端的高效图像传输一直是开发者面临的挑战。本文将分享一个基于QT框架的UDP图像接收器完整实现方案,重点解决网络流媒体处理中的三个核心问题&…...
Ubuntu 24.04 + Wine 9.0 完美运行《文明5》中文版:DXVK配置全攻略
Ubuntu 24.04 Wine 9.0 完美运行《文明5》中文版:DXVK配置全攻略 当Linux游戏兼容性技术遇上经典策略游戏,会碰撞出怎样的火花?作为一款深度考验玩家战略思维的回合制游戏,《文明5》在Windows平台早已积累庞大粉丝群体。而如今&a…...
