很简单的二叉树遍历问题,可以用dfs(深度优先搜索)解决。

看到数据范围,最大不超过 \(10^6\) ,可以不开 long long (但我还是习惯性地开了)

接下来上代码:

#include<bits/stdc++.h>
#define LL long long //宏定义
using namespace std;
const int N=1e6+5;
vector<LL>tree[N];//其实可以开两个数组L[i]和R[i]来表示节点i的左右子节点,但是我懒得改了awa
LL Max=-1;//打擂台求深度用
void dfs(LL u,LL f/*没用*/,LL dep/*计算深度*/){
Max=max(Max,dep);//打擂台,遍历完后Max就是二叉树的深度
for(LL v:tree[u]){//上个题遗留下来的,实际上可以直接遍历第0项和第1项的
if(v==f||v==u||u==f)continue;//一个没什么用的去重,做其他题的时候写的,这道题用不到
dfs(v,u,dep+1);
}
}
int main(){
LL n;
cin>>n;
for(LL i=1;i<=n;i++){
LL v1,v2;
cin>>v1>>v2;//传入节点
tree[i].push_back(v1);//祖传代码
tree[i].push_back(v2);
}
dfs(1,0,0);
cout<<Max;//输出结果
return 0;
}

\(\tiny 附\)\(\tiny 原题链接\)

洛谷P4913【深基16.例3】二叉树深度题解的更多相关文章

  1. 【vector+pair】洛谷 P4715 【深基16.例1】淘汰赛

    题目:P4715 [深基16.例1]淘汰赛 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这道题因为数据范围不大,所以做法可以非常简单,使用一个vector加上pair就可以了: ...

  2. P4715 【深基16.例1】淘汰赛

    P4715 [深基16.例1]淘汰赛 题目描述 有 2^n(n≤7) 个国家参加世界杯决赛圈且进入淘汰赛环节.我经知道各个国家的能力值,且都不相等.能力值高的国家和能力值低的国家踢比赛时高者获胜.1 ...

  3. 【洛谷P3369】【模板】普通平衡树题解

    [洛谷P3369][模板]普通平衡树题解 题目链接 题意: 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个)3 ...

  4. 洛谷 P1992 不想兜圈的老爷爷 题解

    洛谷 P1992 不想兜圈的老爷爷 题解 题目描述 一位年过古稀的老爷爷在乡间行走 而他不想兜圈子 因为那会使他昏沉 偶然路过小A发扬助人为乐优良传统 带上地图 想知道路况是否一定使他清醒 usqwe ...

  5. 如何求先序排列和后序排列——hihocoder1049+洛谷1030+HDU1710+POJ2255+UVA548【二叉树递归搜索】

    [已知先序.中序求后序排列]--字符串类型 #1049 : 后序遍历 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho在这一周遇到的问题便是:给出一棵二叉树的前序和 ...

  6. 洛谷 P1789 【Mc生存】插火把 题解

    P1789 [Mc生存]插火把 题目背景 初一党应该都知道...... 题目描述 话说有一天 linyorson 在"我的世界"开了一个 \(n\times n(n\le 100) ...

  7. BZOJ5285 & 洛谷4424 & UOJ384:[HNOI/AHOI2018]寻宝游戏——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=5285 https://www.luogu.org/problemnew/show/P4424 ht ...

  8. 洛谷p3384【模板】树链剖分题解

    洛谷p3384 [模板]树链剖分错误记录 首先感谢\(lfd\)在课上调了出来\(Orz\) \(1\).以后少写全局变量 \(2\).线段树递归的时候最好把左右区间一起传 \(3\).写\(dfs\ ...

  9. 洛谷P8508 做不完的作业【题解】

    事先声明 此题解为一篇洛谷题解的详细补充,这里(我才不告诉你我这道题想了好久) 题目大意 有 \(n\) 个任务,记作 \(t\) 数组,由于主人公很懒,所以他每天都要睡觉,每一天都有 \(x\) 小 ...

  10. 【洛谷5288】[HNOI2019] 多边形(二叉树模型)

    点此看题面 大致题意: 给你一个多边形,用若干不重合.不相交的线段将其划分为若干三角形区域,并定义旋转操作\((a,c)\)为选定\(4\)个点\(a,b,c,d\)满足\(a<b<c&l ...

随机推荐

  1. 小tips:HTML元素属性分类以及不常用属性介绍

    HTML元素属性分类 全局属性和局部属性 属性可以分为两类:全局属性和局部属性. 其中全部元素都能使用的通用属性称为全局属性.只能运用在某些特定元素的属性,称为局部属性,例如form的action属性 ...

  2. Google Maps Embed API & JavaScript API

    前言 很多年前写过一篇 Google Map 谷歌地图, 这篇算是翻新版本. Google Map Registration Google Maps Platform 是整个 Google Map 的 ...

  3. 推荐3款卓越的 .NET 开源搜索组件库

    前言 最近有不少同学提问:.NET有哪些开源的搜索组件库可以推荐的吗?,今天大姚给大家推荐3款卓越的 .NET 开源搜索组件库,希望可以帮助到有需要的同学. Elasticsearch .NET El ...

  4. linux、unix软链接注意事项

    前言 在使用linux过程中,经常使用到软链接(类似windows快捷方式): 创建软链接之后,删除时不注意就会出现到问题 先说结论 删除软链接,确实是使用rm进行删除:但是有个小细节必须要特别注意! ...

  5. BOOST 定时器 stop探究

    Asio是一个建立在Boost所提供的相关组件之上的异步的网络库,可以运行在Win/Linux/Unix等各种平台之上. 不过随着C++11的发布,其对Boost的依赖也越来越少,作者又做了一个不依赖 ...

  6. 【赵渝强老师】阿里云大数据ACP认证之阿里大数据产品体系

    阿里大数据产品体系是基于阿里云飞天平台上的数据处理服务.主要分为阿里云大数据基础产品和阿里云数加平台,其产品架构图如下所示: 一.阿里云大数据基础产品 1.云数据库--RDS(ApsaraDB for ...

  7. SpringCloud入门(四)Ribbon负载均衡

    一.Ribbon负载均衡原理SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的. SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTempl ...

  8. initrd&init进程

    initrd的全名是 init ramdisk,是一个启动时存在于内存的文件系统. kernal 到 initrd的流程 在GRUB加载kernel时,kernel会先在内存中制造一个rootfs当做 ...

  9. dotnet 委托delegate的使用 定义和使用

    void Main() { // 委托 - 初级和高级的分水岭 // 1. 委托的初体验 // 委托是一个引用类型,其实是一个类型,保存方法的指针(地址) (变量名字都是地址 都是指针) // 是一个 ...

  10. for 和双重 for 的区别?

    1. 内层的循环可以看作外层循环的语句 2. 外层循环执行 1 次 ,内层循环执行全部