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

P3398 仓鼠找 sugar

Portal.

LCA。

询问树上两条路径是否有交点。

画图发现无非两种情况:

发现一条路径的起点和终点的 LCA 经过另一条路径,是两路径相交的充要条件。

考虑如何判断这个 LCA 在不在路径上。若 d ( s , LCA ) + d ( LCA , t ) = d ( s , t ) d(s,\text{LCA})+d(\text{LCA},t)=d(s,t) d(s,LCA)+d(LCA,t)=d(s,t),由于树上路径的唯一性,显然存在。

注意 LCA 函数,if(dep[f[x][i]]>=dep[y]) x x x 就可以往上跳。

#include <bits/stdc++.h>
using namespace std;
#define int long longconst int maxn=1e5+5;
struct edge{int to,nxt;}e[maxn*2];
int head[maxn],cnt,dep[maxn],f[maxn][25];void add(int x,int y){e[++cnt]={y,head[x]},head[x]=cnt;}void dfs(int x,int fa)
{dep[x]=dep[fa]+1,f[x][0]=fa;for(int i=head[x];i;i=e[i].nxt){if(e[i].to==fa) continue;dfs(e[i].to,x);}
}int lca(int x,int y)
{if(dep[x]<dep[y]) swap(x,y);for(int i=20;i>=0;i--) if(dep[f[x][i]]>=dep[y]) x=f[x][i];if(x==y) return x;for(int i=20;i>=0;i--)if(f[x][i]!=f[y][i]) x=f[x][i],y=f[y][i];return f[x][0];
}int dis(int x,int y){return abs(dep[x]-dep[lca(x,y)])+abs(dep[y]-dep[lca(x,y)]);}signed main()
{int n,q;cin>>n>>q;for(int i=1,u,v;i<n;i++) cin>>u>>v,add(u,v),add(v,u);dfs(1,0);for(int j=1;j<=20;j++) for(int i=1;i<=n;i++) f[i][j]=f[f[i][j-1]][j-1];while(q--){int a,b,c,d;cin>>a>>b>>c>>d;int f1=lca(a,b),f2=lca(c,d);if(dis(a,f2)+dis(b,f2)==dis(a,b)||dis(c,f1)+dis(d,f1)==dis(c,d)) cout<<"Y\n";else cout<<"N\n";// cout<<lca(a,b)<<endl;}return 0;
}
http://www.lryc.cn/news/216912.html

相关文章:

  • C# 发送邮件
  • Zeal下载文档慢的问题
  • HR模块开发(1):简单的开发流程和注意事项
  • 创建Vue实例
  • 2024上海国际人工智能展(CSITF)以“技术,让生活更精彩”为核心理念,以“创新驱动发展,保护知识产权,促进技术贸易”为主题
  • Vue3使用Monaco-editor
  • java 根据ip获取到城市 GeoLite2-City.mmdb
  • kaggle使用说明
  • BUUCTF FLAG 1
  • 万物皆可“云” 从杭州云栖大会看数智生活的未来
  • LeetCode1518 换水问题
  • 强大日志查看器,助力数据联动分析
  • HIBS一些简介
  • OpenCV实现人脸关键点检测
  • 300万美元!澳大利亚昆士兰州投资当地首家量子公司AQC
  • Android Studio打包AAR
  • 【Python基础知识四】控制语句
  • Jmeter压测 —— 1秒发送1次请求
  • 目标检测YOLO实战应用案例100讲-基于改进YOLOv4算法的自动驾驶场景 目标检测
  • Spring Cloud智慧工地源码,利用计算机技术、互联网、物联网、云计算、大数据等新一代信息技术开发,微服务架构
  • AI视频 | Runway的史诗级更新真的那么震撼吗?来看我的试用体验!
  • 【动作模式识别】实现复合动作模式识别(离线控制模块)
  • Python基础学习009——类的封装
  • 前端开发和后端开发,你更倾向于哪一种?
  • Selenium 基本功能
  • 智能井盖传感器有哪些?万宾科技智能井盖效果
  • 视频增强和修复工具 Topaz Video AI mac中文版功能
  • 0基础学习PyFlink——使用datagen生成流式数据
  • vue使用Web Speech API实现语音播报
  • MVC5_Day1(Razor视图引擎)