1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

思路与结论

关键观察

  • 由定义可知:每向下一层,yyy 坐标减 111,因此对任意结点 iii,有 yi=−depth(i),y_i = -\text{depth}(i),yi​=−depth(i), 其中 depth(1)=0\text{depth}(1)=0depth(1)=0。
  • xxx 坐标从根开始:走到左儿子 xxx 减 111,走到右儿子 xxx 加 111。 因而 xix_ixi​ 等于从根到 iii 的路径上“右转次数减去左转次数”。

P3728.第2题-树上曼哈顿距离

    1000ms Tried: 48 Accepted: 19 Difficulty: 5 所属公司 : 蚂蚁
    算法与标签>BFS

题目内容

小红有一棵nnn个结点的二叉树,根结点为1。

定义树上一个点的坐标为(xi,yi)(xi,yi)(xi,yi),根结点的坐标为(0,0)(0,0)(0,0)。

一个结点若有两个子结点,那么我们称编号较小的结点为左儿子,编号较大的为右儿子,若只有一个结点,默认其为左儿子。

若一个结点的父结点坐标为(a,b)(a,b)(a,b),如果该结点为父结点的左儿子,那么此结点的坐标为(a−1,b−1)(a-1,b-1)(a−1,b−1),如果该结点为父结点的右儿子,那么该结点的坐标为(a+1,b−1)(a+1,b-1)(a+1,b−1)。

定义两点的树上曼哈顿距离为∣x1−x2∣+∣y1−y2∣|x_1- x_2|+|y_1- y_2|∣x1​−x2​∣+∣y1​−y2​∣。

现在小红会提出若干个询问,每次给出两个点,请你回答两点的树上曼哈顿距离。

输入描述

第一行两个整数n,q(1≤n,q≤105)n,q(1≤n,q≤10^5)n,q(1≤n,q≤105),表示结点个数和询问次数。

接下来n−1n-1n−1行,每行222个整数u,v(1≤u,≤n,u≠v)u,v(1≤u,≤n,u≠v)u,v(1≤u,≤n,u=v),表示u,vu,v u,v之间存在一条无向边。

接下来qqq行,每行两个整数x,y(1≤x,y≤n)x,y(1≤x,y≤n)x,y(1≤x,y≤n),表示询问的点对。

输入保证是一棵二叉有根树。

输出描述

qqq 行,每行一个整数,两个点的树上曼哈顿距离。

样例1

输入

5 2
1 2
2 3
2 4
3 5
1 5
3 1

输出

6
4

说明

五个点的坐标分别为 (0,0),(−1,−1),(−2,−2),(0,−2),(−3,−3)(0, 0), (-1,-1),(-2,-2),(0,-2),(-3,-3)(0,0),(−1,−1),(−2,−2),(0,−2),(−3,−3)。

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 3, 98ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?