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

网络延时 第四次CCF-CSP计算机软件能力认证

就是求树的直径:

思路:函数代表当前根节点的最长距离 然后遍历保存当前树的所有孩子的最长距离 和次长距离 如果是叶子节点就返回0

在每次获得每个节点的次长距离和最长距离就更新全局直径 最后获得最长距离

Ac代码:

#include <bits/stdc++.h>
using namespace std;const int MAXN = 20005;          // n + m ≤ 2 × 10⁴struct Node {vector<int> child;           // 下挂节点int parent = 0;              // 可选:上级交换机
} tree[MAXN];int n, m;
int diameter_len = 0;            // 全局最长路径(边数)/** dfs(u) 返回:以 u 为根向“最深叶子”走下去的最大深度(边数)* 同时在回溯阶段用两条最大的儿子深度 candidate1、candidate2* 来更新经过 u 的最长路径,从而维护全局直径 diameter_len*/
int dfs(int u)
{int first = 0, second = 0;   // 当前结点两条最大下行深度for (int v : tree[u].child){int d = dfs(v) + 1;      // +1 把边 u→v 计入深度if (d > first) {second = first;first = d;}else if (d > second) {second = d;}}diameter_len = max(diameter_len, first + second);  // 经过 u 的最长“弯”路径return first;                                      // 向上传递最大深度
}int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);if (!(cin >> n >> m)) return 0;for (int i = 2; i <= n; ++i) {int p; cin >> p;tree[i].parent = p;tree[p].child.push_back(i);}for (int i = 1; i <= m; ++i) {int p; cin >> p;           // 父交换机编号int id = n + i;tree[id].parent = p;tree[p].child.push_back(id);}dfs(1);                        // 根为 1cout << diameter_len << '\n';  // 最长消息转发路径(边数)return 0;
}

http://www.xdnf.cn/news/295561.html

相关文章:

  • 41.寻找缺失的第一个正数:原地哈希算法详解
  • pyqt写一个单片机配置界面
  • DockerDesktop替换方案
  • AVL树 和 红黑树 的插入算法
  • 模拟芯片设计中数字信号处理一些常用概念(一)
  • Agent2Agent(谷歌A2A)协议原理讲解
  • Linux 文件系统深度解析
  • (二)MMA(整洁架构)
  • 中阳策略:如何从K线行为中提取交易逻辑信号?
  • spring中spring-boot-configuration-processor的使用
  • wordperss AI插件:AI图文+视频+长尾关键词自动生成,已内置deepseek、kimi全模型,支持简单一键接入更多自定义API
  • 动态规划之子序列问题1
  • n8n中Wait节点的使用详解:流程暂停与恢复的实战指南
  • CodeQL-CLI工具小白入门
  • hp主机安装ubuntu 22.04版本并换阿里源
  • 【Unity】一个AssetBundle热更新的使用小例子
  • n8n 中 Compare Datasets 节点使用详解
  • 怎么使用nacos作注册中心 + 配置中心。
  • PCA降维详解
  • 信息安全导论 第八章 入侵检测技术
  • 手表关于MPU6050中的功能实现
  • 深入理解C语言中的内存区域:堆、栈与变量存储空间详解
  • Python 文件操作详解:从基础到实践
  • 面向对象与过程介绍
  • Java学习手册:Hibernate/JPA 使用指南
  • Oracle OCP认证考试考点详解083系列08
  • 高速接口:PCIe 3.0 Link Training的详细过程
  • 5.4 - 5.5Web基础+c语言拓展功能函数
  • MyDB - 手写数据库
  • Spring 框架的底层原理