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

GESP2024年6月认证C++八级( 第三部分编程题(1)最远点对)

参考程序:

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;// 图的邻接表
vector<int> g[N];// 每个点的颜色,0表示白色,1表示黑色
int col[N];// 树的节点个数
int n;// 每个节点的深度
int dep[N];// far[u][0] 表示在以 u 为根的子树中,距离 u 最远的白色点的深度
// far[u][1] 表示在以 u 为根的子树中,距离 u 最远的黑色点的深度
int far[N][2];// 最终答案
int ans = 0;// 深度优先搜索
void dfs(int x, int fa){dep[x] = dep[fa] + 1;             // 当前节点的深度比父节点多1far[x][col[x]] = dep[x];         // 以自己为根,颜色相同的最远点就是自己for(int i : g[x]){if(i != fa){dfs(i, x);               // 遍历子树// 枚举白-黑配对和黑-白配对情况for(int j = 0; j < 2; j++){// 如果当前节点 x 在颜色 j 有最远点,子节点 i 在颜色 j^1 有最远点if(far[x][j] != -1 && far[i][j^1] != -1){// 更新答案(两个路径深度减去2倍dep[x]得到真实路径长度)ans = max(ans, far[x][j] - dep[x] + far[i][j^1] - dep[x]);}}// 将子节点的信息合并回当前节点for(int j = 0; j < 2; j++){far[x][j] = max(far[x][j], far[i][j]);}}}// 当前节点自己向上传递,看它能不能与祖先形成不同色对if(far[x][col[x]^1] != -1){ans = max(ans, far[x][col[x]^1] - dep[x]);}
}int main(){cin >> n;memset(far, -1, sizeof far); // 初始化为-1表示没有颜色 j 的点for(int i = 1; i <= n; i++){cin >> col[i]; // 读入每个节点的颜色}// 构建无向树for(int i = 1; i < n; i++){int u, v;cin >> u >> v;g[u].push_back(v);g[v].push_back(u);}dfs(1, 0); // 从根节点 1 开始 DFScout << ans << "\n"; // 输出最终答案
}

相关文章:

  • GZIPInputStream 类详解
  • 【AI科技】AMD ROCm 6.4 新功能:突破性推理、即插即用容器和模块化部署,可在 AMD Instinct GPU 上实现可扩展 AI
  • 03 - spring security自定义登出页面
  • 10 种微服务设计模式
  • Baklib智链企业知识资产体系
  • 处方流转平台权限控制模块设计(基于RBAC模型)
  • kubernetes中离线业务编排详解JobCronJob之Job控制器CronJob
  • 新手学编程前端好还是后端
  • Android学习总结之jetpack组件间的联系
  • DarkGS:论文解读与全流程环境配置及数据集测试【基于Ubuntu20.04 】【2025最新实战无坑版!!】
  • 数字智慧方案5874丨智慧交通收费稽核管理体系的构建与思考(44页PPT)(文末有下载方式)
  • Python基于深度学习的网络舆情分析系统(附源码,部署)
  • 深入解析C++11基于范围的for循环:更优雅的容器遍历方式
  • C# 方法(局部变量和局部常量)
  • 快速集成 Flutter Shorebird 热更新
  • 【嵌入式Linux】基于ARM-Linux的zero2平台的智慧楼宇管理系统项目
  • 体系结构论文(八十二):A Comprehensive Analysis of Transient Errors on Systolic Arrays
  • 从此,K8S入门0门槛!
  • Android基础控件用法介绍
  • 见多识广4:Buffer与Cache,神经网络加速器的Buffer
  • 专访|“甲亢哥”的操盘手,带NBA球星们玩转中国流量
  • 五一假期上海两大机场客流量超193万人次,创历年同期最高
  • 新闻分析:电影关税能“让好莱坞再次伟大”?
  • Neuralink脑接设备获FDA突破性医疗设备认证
  • 长三角铁路今日预计发送旅客398万人次,客流持续保持高位运行
  • 3477亿美元!伯克希尔一季度现金储备再创新高,担忧关税战不确定性影响