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

【题解】Luogu P10289 [GESP样题 八级] 小杨的旅游

思路

首先不难发现是树上最短路,使用最近公共祖先求解。令 \(u,v\) 的 LCA 为 \(k\),答案为 \(dep_u-dep_k+dep_v-dep_k\)。也可以在向上跳的同时累加步数。

然后考虑传送门,只要从 \(u,v\) 出发走到各自距离最近的传送门即可。使用 BFS 找到每个点距离最近的传送门。

最后答案为两者中较小值。

实现

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
const int INF=1e9;
int n,k,q,D;
int h[N],tot;
int fa[N][20],dep[N];
int f[N];
bool t[N],qvis[N];
struct Node{int to,nxt;
}e[2*N];
struct Qnode{int u,step;
};
queue<Qnode> Q;
void Add(int u,int v){tot++;e[tot].to=v;e[tot].nxt=h[u];h[u]=tot;
}
void bfs(){while(!Q.empty()){Qnode front=Q.front();int u=front.u,st=front.step;Q.pop();for(int i=h[u];i;i=e[i].nxt){int v=e[i].to;if(!qvis[v]){Q.push(Qnode{v,st+1});qvis[v]=1;f[v]=st+1;}}}
}
void dfs(int u,int cur,int fath){fa[u][0]=fath;D=max(D,cur);dep[u]=cur;for(int i=1;i<=log(dep[u])/log(2);i++) fa[u][i]=fa[fa[u][i-1]][i-1];for(int i=h[u];i;i=e[i].nxt){int v=e[i].to;if(v!=fath) dfs(v,cur+1,u);}
}
int LCA(int a,int b){if(dep[a]<dep[b]) swap(a,b);int dis=0;for(int i=log(D)/log(2);i>=0;i--){if(dep[fa[a][i]]>=dep[b]){a=fa[a][i];dis+=(1<<i);} }if(a==b) return dis;for(int i=log(D)/log(2);i>=0;i--){if(fa[a][i]!=fa[b][i]){a=fa[a][i];b=fa[b][i];dis+=2*(1<<i);}}dis+=2;return dis;
}
int main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);memset(f,0x3f,sizeof(f));cin>>n>>k>>q;for(int i=1;i<=n-1;i++){int u,v;cin>>u>>v;Add(u,v),Add(v,u);}for(int i=1;i<=k;i++){int x;cin>>x;Q.push((Qnode){x,0});t[x]=1,qvis[x]=1,f[x]=0;}bfs();dfs(1,1,0);for(int i=1;i<=q;i++){int u,v;cin>>u>>v;cout<<min(LCA(u,v),f[u]+f[v])<<'\n';}return 0;
}

时间复杂度 \(O(n\log n)\)

http://www.jsqmd.com/news/110943/

相关文章:

  • 2025 年最新炭化机 / 炭化炉 / 炭化设备厂家实力推荐 TOP5 - 深度智识库
  • 解决jenkins无法启动tomcat问题
  • AI 训练素材、数据集供应商推荐:图片视频数据选哪家? - 品牌2026
  • 2025年12月矿物铸件的头部企业推荐榜:南通盟鼎新材料五星闪耀,减振赋能精度,这些企业领跑装备升级 - 海棠依旧大
  • 最新发布!2025年国内实心钢棒现货厂家TOP5榜单,实心钢棒/不锈钢无缝实心钢棒生产加工怎么选择 - 品牌推荐师
  • 2025年12月U型科氏质量流量计企业推荐:大连美天测控、三角型科氏质量流量计、微弯型科氏质量流量计、直管型科氏质量流量计、科氏质量流量计推荐指南 - 海棠依旧大
  • 国内混合机品牌五大佼佼者出炉!揭秘这些混合设备工厂的硬核实力 - 速递信息
  • golang的defer 深坑
  • 群晖DSM系统入门:新手必看的10个设置
  • Day33分辨率与视口与二倍图使用方法
  • 2025年12月切片蜡块柜推荐榜:密集型/高容量密集型/智能/病理/防潮防腐/多层抽屉式/实验室/切片蜡块柜,安全高效存储新标杆,北京中宝元五星领跑实验室装备市场 - 海棠依旧大
  • 2025义乌净化工程服务商推荐榜:聚焦洁净车间与实验室一站式解决方案 - 呼呼拉呼
  • 2025 十大商用素材网站:高清图片购买及正版图库推荐 - 品牌2026
  • 2025 宝藏十大图库!自媒体、小红书、公众号配图必备 - 品牌2026
  • C++学习笔记 23 宏 Macro
  • FireFox 配置
  • 2025年12月医用电梯安装,观光电梯安装,家用电梯安装公司推荐:行业测评与选择指南 - 品牌鉴赏师
  • 2025年12月发膜品牌推荐榜:8秒液体/蛋白/修护/发膜,玛丝兰领衔修护新标杆,从发芯强韧开始,让枯发重获新生 - 海棠依旧大
  • 2025年12月洁净无氧烘箱厂家新标杆:德菲瑞斯高真空无氧烘箱、HMDS 无氧烘箱、真空无氧烘箱、充氮无氧烘箱、高温无氧烘箱、HMDS真空无氧烘箱、精准控温更可靠 - 海棠依旧大
  • Row下的两个Text文本自适应宽度,并以中间为基准滚动
  • Vite:现代前端构建工具的革命与实战指南
  • 立体相机标定
  • 2025年12月专业的株洲搬家公司实力榜:株洲家庭搬家、株洲厂房搬迁、株洲钢琴搬运、五家企业凭服务与口碑出圈 - 海棠依旧大
  • ABAP调用CDS AMDP:数据库存储过程封装
  • 专业解读|北京刑事律师事务所实力排名:2025靠谱机构辩护方案对比 - 老周说教育
  • 2025年12月株洲靠谱的搬家公司首选:株洲旺成搬家,株洲搬迁公司、株洲企业搬迁、株洲长途搬家、株洲居民搬家、专业团队护航全程无忧 - 海棠依旧大
  • 2025年煤粉仓防爆门实力厂家权威推荐榜单:重力防爆门/矩形防爆门/弹簧防爆门源头厂家精选 - 品牌推荐官
  • 网络工程毕设2026开题指导
  • 2025年12月楼梯/实木楼梯/实木衣柜门品牌推荐榜单精选 - 2025年品牌推荐榜
  • 2025年12月内蒙古呼和浩特驾校/摩托车驾校推荐榜单 - 2025年品牌推荐榜