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

电脑做会计从业题目用什么网站做百度推广的公司电话号码

电脑做会计从业题目用什么网站,做百度推广的公司电话号码,义乌小商品市场进货渠道,威海外贸网站建设联系方式文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴最近公共祖先一、题目 1、原题链接 3555. 二叉树 2、题目描述 给定一个 n 个结点(编号 1∼n)构成的二叉树,其根结点为 1 号点。 进行 m…

文章目录

  • 一、题目
    • 1、原题链接
    • 2、题目描述
  • 二、解题报告
    • 1、思路分析
    • 2、时间复杂度
    • 3、代码详解
  • 三、知识风暴
  • 最近公共祖先

一、题目

1、原题链接

3555. 二叉树

2、题目描述

给定一个 n 个结点(编号 1∼n)构成的二叉树,其根结点为 1 号点。

进行 m 次询问,每次询问两个结点之间的最短路径长度

树中所有边长均为 1。

输入格式

第一行包含一个整数 T,表示共有 T 组测试数据。

每组数据第一行包含两个整数 n,m。

接下来 n 行,每行包含两个整数,其中第 i 行的整数表示结点 i 的子结点编号。如果没有子结点则输出 −1。

接下来 m 行,每行包含两个整数,表示要询问的两个结点的编号。

输出格式

每组测试数据输出 m 行,代表查询的两个结点之间的最短路径长度。

数据范围

1≤T≤10,1≤n,m≤1000

输入样例

1
8 4
2 3
4 5
6 -1
-1 -1
-1 7
-1 -1
8 -1
-1 -1
1 6
4 6
4 5
8 1

输出样例

2
4
2
4

二、解题报告

1、思路分析

思路来源:y总讲解视频
y总yyds

(1)可以将题目所求的两点之间的最短路径长度转化为两点距离其公共祖先的距离和。
(2)我们可以计算出所求两点距离根结点的距离d[x1]d[x2],然后再求出其最近公共祖先距离根结点的距离d[x3],则两点之间的最短长度为d[x1]+d[x2]-2*d[x3]
(3)而上述距离可以利用深搜来求,最近公共祖先可以利用爬山法:先将深度较深的点往上爬,爬到与另一个点的深度相同后,两点一起往上爬,爬到的第一个相同的点即为最近公共祖先。
(4)模拟上述过程,求解即可。

2、时间复杂度

时间复杂度为O(n*m)

3、代码详解

#include <iostream>
#include <cstring>
using namespace std;
const int N=1010;
int l[N],r[N],p[N];   //l[],r[]存储每个结点的左右儿子,p[]存储每个结点的父结点
int dist[N];          //dist[]存储每个结点到根结点的距离
int T,n,m;
//dfs求每个点距离根结点的距离
void dfs(int u,int d){     //u代表当前点编号,d代表距离dist[u]=d;        if(l[u]!=-1) dfs(l[u],d+1);    //如果左儿子存在,继续从左儿子向下延伸if(r[u]!=-1) dfs(r[u],d+1);    //如果右儿子存在,继续从右儿子向下延伸
}
//爬山法求最近公共祖先
int getLca(int x,int y){if(dist[x]>dist[y]) swap(x,y);     //始终保持y的深度比x大while(dist[y]>dist[x]) y=p[y];     //y向上爬到与x同一深度while(y!=x) x=p[x],y=p[y];         //x,y一起向上爬,直到遇到第一个公共祖先return x;
}
int main(){cin>>T;while(T--){cin>>n>>m;memset(l,-1,sizeof l);memset(r,-1,sizeof r);for(int i=1;i<=n;i++){int lc,rc;cin>>lc>>rc;l[i]=lc,r[i]=rc;if(lc!=-1) p[lc]=i;if(rc!=-1) p[rc]=i;}dfs(1,0);while(m--){int x,y;cin>>x>>y;int lca=getLca(x,y);int ans=dist[x]+dist[y]-2*dist[lca];cout<<ans<<endl;}}return 0;
}

三、知识风暴

最近公共祖先

  • 可以利用爬山法进行求解:先将位置较低的点往上爬,爬到与另一个点高度一致,然后两个点一起向上爬,直到遇到第一个公共祖先为止(即到达的点相同)。
http://www.hkea.cn/news/186482/

相关文章:

  • 想要将网站信息插到文本链接怎么做百度关键词搜索
  • 江苏网站备案要多久seo域名综合查询
  • 大型网站建设机构津seo快速排名
  • 建设证件查询官方网站宁波做网站的公司
  • 那些网站招聘在家里做的客服网店推广策略
  • 湘西 网站 建设 公司sem代运营托管公司
  • 用css为wordpress排版西安seo外包服务
  • vs2005做网站百度推广官方网站登录入口
  • 乐从网站建设公司北京seo优化推广
  • 如何在网上接做网站的小项目市场监督管理局电话
  • 淘宝购物站优化
  • 石家庄最新疫情轨迹河南网站优化公司哪家好
  • 网站色彩搭配服务器ip域名解析
  • 哪个网站专业做安防如何注册域名网站
  • 穆棱市住房和城乡建设局网站关键词词库
  • 成都网站建设市场什么是网络营销的核心
  • 深圳找人做网站廊坊优化外包
  • 衡阳市城市建设投资有限公司网站湖南企业seo优化报价
  • css做网站常用百度权重优化软件
  • 合合肥网站建设制作网站用什么软件
  • 杭州网站设计公司推荐网络推广与优化
  • 移动惠生活app下载网址荆门网站seo
  • 做网站很赚钱吗关键词自助优化
  • wordpress小工具里的用户中心南京谷歌优化
  • 网站开发中茶叶网络营销策划方案
  • 临海市住房与城乡建设规划局 网站目前最新的营销模式有哪些
  • 高校建设网站的特色如何建立一个网站
  • 公司做网站域名归谁搜索引擎营销策划方案
  • 怎么做外贸个人网站seo综合查询工具可以查看哪些数据
  • 黑客网站盗qq百度seo公司整站优化