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

洛谷 P4552 [Poetize6] IncDec Sequence

题目描述

如下图所示的一棵二叉树的深度、宽度及结点间距离分别为:

- 深度:4
- 宽度:4
- 结点8和6之间的距离:8
- 结点7和6之间的距离:3

其中宽度表示二叉树上同一层最多的结点个数,节点u, v之间的距离表示从u到v的最短有向路径上向根节点的边数的两倍加上叶节点的边数。

输入格式

第一行是一个整数,表示树的结点个数n。
接下来n-1行,每行两个整数u, v,表示树上存在一条连接u, v的边。
最后一行有两个整数x, y,表示求x, y之间的距离。

输出格式
输出三行,每行一个整数,依次表示二叉树的深度、宽度和x,y之间的距离。

输入输出样例
输入#1

10
4
1 2
4
1 3
8
2 4
2 5
3 6
3 7
5 8
5 9
6 10
8 6


复制
输出#1
 

4
4
8

说明/提示
对于全部的测试点,保证1 ≤ u, v, x, y ≤ n ≤ 100,且给出的是一棵树。保证u是v的父结点。

思路:

代码如下:

#include <iostream>
#include <vector>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 1e4+10;
int head[2*N],deepth[2*N],width[2*N],max_deep = -1e9,deep = 1,max_wide = -1e9,tot;
bool vis[2*N];
struct Edge{int next;int to;int w;
}e[N*2];
void add_1(int u,int v,int w)
{tot++;e[tot].next = head[u];e[tot].to = v;e[tot].w = w;head[u] = tot;
}
void add_2(int u,int v,int w)
{tot++;e[tot].next = head[u];e[tot].to = v;e[tot].w = w;head[u] = tot;
}
void dfs(int x, int depth)
{if (vis[x]) return;vis[x] = true;max_deep = max(max_deep, depth);/*  for (int i = head[x]; i != -1; i = e[i].next){int to = e[i].to;dfs(to, depth + 1); // 递归调用时深度加1}*/int u = head[x];while(u != -1){int to = e[u].to;dfs(to,depth + 1);u = e[u].next;}
}
int main() 
{int n;cin >> n;memset(head,-1,sizeof(head));for(int i = 1 ; i <= n-1 ; i++){int u,v;cin >> u >> v;//有向图 add_1(u,v,1);add_2(v,u,2);}dfs(1,1);cout << max_deep;return 0;
}


http://www.mrgr.cn/news/90501.html

相关文章:

  • 名词解释:npm,cnpm,yarn,vite,vue,electron
  • 深入了解 MySQL:从基础到高级特性
  • CSDN成长日记(持续更新)
  • HAL库外设宝典:基于CubeMX的STM32开发手册(持续更新)
  • flask和django的对比
  • iOS主要知识点梳理回顾-5-运行时方法交换
  • 阿里云 DeepSeek 模型部署与使用技术评测
  • 机器学习 - 机器学习模型的评价指标
  • 十大知识领域中涉及到的工具与技术(三)
  • 数据类型/运算符/输入与输出/注释
  • 【云安全】云原生-K8S API Server 未授权访问
  • Openssl的使用,CA证书,中间证书,服务器证书的生成与使用
  • ffmpeg学习:ubuntu下编译Android版ffmpeg-kit
  • java lambda表达式
  • Cherry Studio 连接私域deepseek-r1模型搭建私域知识库和智能体(也可使用第三方模型)
  • 从零开始搭建一个英语学习网站
  • 国产ARM处理器工控机如何助力企业实现自主可控?
  • JVM学习
  • 微服务与网关
  • 【环境安装】重装Docker-26.0.2版本
  • DeepSeek渣机部署编程用的模型,边缘设备部署模型
  • 微信小程序医院挂号系统
  • tkinter-TinUI-xml实战(12)应用组启动器
  • windows系统远程桌面连接ubuntu18.04
  • AI语言模型的技术之争:DeepSeek与ChatGPT的架构与训练揭秘
  • 玩转大语言模型——使用Kiln AI可视化环境进行大语言模型微调数据合成