蓝桥杯T32(树的直径)
题目链接:http://lx.lanqiao.cn/problem.page?gpid=T32
题意:中文题诶~
思路:显然给出的地图是一颗树,若能求得树的直径 ans,则答案为:ans*(ans+1)/2 + 10*ans;
对于树的直径:若已知根节点root,则 ans 为 root 高度最大的两颗子树高度和,显然我们可以先dfs一遍找到 root 最高的子树并确定离 root 最远的那个节点 v ;
然后再以 v 为根节点,显然 v 只有一颗子树,那么这颗子树的高度即为此树的直径.只需从 v 出发再dfs一遍即可 ;
所以对于求树的直径我们可以先以任意一点为出发点dfs出距离此节点最远的节点v,再从v出发dfs一遍距离v最远的点,此时求出的距离即为直径;
代码:
1 #include <stdio.h> 2 #include <vector> 3 #include <algorithm> 4 #include <string.h> 5 using namespace std; 6 7 vector<pair<int,int> >tree[100005]; 8 bool vis[100005]; 9 int end_root,Max_len; 10 11 void dfs(int x,int len){ 12 vis[x]=true; 13 if(len>Max_len) Max_len=len,end_root=x; 14 for(int i=0;i<tree[x].size();i++){ 15 if(!vis[tree[x][i].first]){ 16 dfs(tree[x][i].first,len+tree[x][i].second); 17 } 18 } 19 } 20 21 int main(void){ 22 int n; 23 while(~scanf("%d",&n)){ 24 int max_val=0; 25 memset(tree,0,sizeof(tree)); 26 for(int i=1;i<n;i++){ 27 int a,b,c; 28 scanf("%d %d %d",&a,&b,&c); 29 tree[a].push_back({b,c}); 30 tree[b].push_back({a,c}); 31 } 32 Max_len=0; 33 memset(vis,0,sizeof(vis)); 34 dfs(1,0); 35 memset(vis,0,sizeof(vis)); 36 dfs(end_root,0); 37 long long ans=Max_len; 38 printf("%lld\n",ans*(1+ans)/2+10*ans); 39 } 40 }
View Code
转载于:https://www.cnblogs.com/geloutingyu/p/6871818.html
蓝桥杯T32(树的直径)相关推荐
- java 蓝桥杯 Huffuman树
目录标题 问题描述 解题思路 代码 流程图 问题描述 Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构造过程. 给出一列数{pi}={p0, p1, -, pn-1},用 ...
- 蓝桥杯重点(C/C++)(随时更新,更新时间:2023.2.9)
点关注不迷路,欢迎推荐给更多人,大约两天更新一次,建议点赞收藏加关注 本次更新内容:日期类填空题快速求解 目录 1 技巧 1.1 取消同步(节约时间,甚至能多骗点分,最好每个程序都写上) 1.2 ...
- [蓝桥杯][2013年第四届真题]大臣的旅费(树的直径)
题目描述 很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首 ...
- AcWing 蓝桥杯AB组辅导课 05、树状数组与线段树
文章目录 前言 一.树状数组 1.1.树状数组知识点 1.2.树状数组代码模板 模板题:AcWing 1264. 动态求连续区间和 例题 例题1.AcWing 1265. 数星星[中等,信息学奥赛一本 ...
- 蓝桥杯 油漆面积【第八届】【省赛】【A组】线段树扫面线/求矩形相交面积/模拟
资源限制 内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s X星球的一批考古机器人正在一片废墟上考古. 该区域的地面坚硬如 ...
- 2017年“嘉杰信息杯” 中国大学生程序设计竞赛全国邀请赛(湖南) 暨 第九届湘潭市大学生程序设计比赛H.Highway(树的直径)
Highway Accepted : 122 Submit : 393 Time Limit : 4000 MS Memory Limit : 65536 KB Highway In ICPC ...
- 一些蓝桥杯的简单模拟题目
3.xx大学的模拟题 1.基础知识 顺序 选择 循环 数组宁符数组 结构体 函数 全排列 multimap 1.*梦里的难题 生化危机血腥暴力的场面对小星星的冲击很大,晚上频繁地做起了梦,梦里他担负起 ...
- 数据结构中树的直径问题
树的直径是指树的最长简单路.求法: 两遍BFS :先任选一个起点BFS找到最长路的终点,再从终点进行BFS,则第二次BFS找到的最长路即为树的直径: 原理: 设起点为u,第一次BFS找到的终点v一定是 ...
- Python冲击省一蓝桥杯 DFS集锦
距离蓝桥杯38天 话不多说 直入主题 耐心看完 一定会对你有所帮助 有什么不懂的随时可以私信小郑 深搜虽然很难 但总要面对 如果总是逃避 那就很难进步! 下面呈现的内容将以题目来源+题目分析+代码+知 ...
- python蓝桥杯准备
蓝桥杯题库 入门训练 A+B问题 数列排序 十六进制转八进制 十六进制转十进制 十进制转十六进制 特殊回文数 回文数 特殊的数字 杨辉三角形 查找整数 数列特征 字母图形 01字串 闰年判断 Fibo ...
最新文章
- UI设计培训中的扁平化理念
- 知识蒸馏:如何用一个神经网络训练另一个神经网络
- NLP文本生成模型数据准备及实战
- 智能搜索引擎---命题的确定
- 浅谈文本的相似度问题
- 迁移数据库到SQL on Linux Docker
- vnc oracle solaris,在Solaris下安装VNC 远程安装Oracle
- 计算机安全概论论文,计算机安全探讨论文毕业论文(7篇).doc
- Linux常用工具小结:(2) Mysql的rpm安装和编译安装
- 三菱fx2n64mr说明书_FX2N-64MR-001原理及应用三菱FX2N-64MR-001使用说明书 - 三菱
- Ubuntu 18.04 - 启动时停留在 start bpfilter
- NSAttributedString
- 【前端 · 面试 】HTTP 总结(二)—— HTTP 消息
- 5 张图带你搞懂容器网络的工作原理
- 阿里云发布ET奥运大脑,推进奥运进入数字时代
- C++数据范围及字节对照表
- Win10安装pdf虚拟打印机的方法
- 男人,得有足够征服女人的本钱
- 腾讯云即时通讯im之获取userSig
- 单位冲激信号 matlab,matlab单位冲激序列
热门文章
- 【渝粤教育】电大中专计算机职业素养 (11)作业 题库
- CC1310开发笔记
- 彻底关闭Windows更新
- 解决TS中“Cannot find module ‘path‘ or its corresponding type declarations.”
- MFC:读取整个记事本文件
- 翟菜花:从风流到下流,杜蕾斯新文案为何被人口诛笔伐?
- spark submit提交方式
- html文本框拖动全选,html文本框常见操作技巧
- win10 删除右键显卡菜单项
- 分智评25位最受欢迎CEO 微软中国梁念坚居首