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

lca(倍增)

例题:https://acm.hdu.edu.cn/showproblem.php?pid=2586

点击查看代码
#include <bits/stdc++.h>using namespace std;const int N = 40010;vector<int> v[N];
vector<int> w[N];int fa[N][31],cost[N][31],dep[N];
int n,m;
int a,b,c;void dfs(int root, int fno){fa[root][0] = fno;dep[root] = dep[fa[root][0]] + 1;for(int i = 1; i < 31; i ++){fa[root][i] = fa[fa[root][i - 1]][i - 1];cost[root][i] = cost[fa[root][i - 1]][i - 1] + cost[root][i - 1];}int sz = v[root].size();for(int i = 0; i < sz; i ++){if(v[root][i] == fno)continue;cost[v[root][i]][0] = w[root][i];dfs(v[root][i],root);}
}int lca(int x,int y){//令 y 比 x 深if(dep[x] > dep[y])swap(x,y);int tmp = dep[y] - dep[x];int ans = 0;for(int j = 0; tmp; j ++, tmp >>= 1){if(tmp & 1) ans += cost[y][j],y = fa[y][j];}if(x == y) return ans;for(int j = 30; j >=0 && y != x; j --){if(fa[x][j] != fa[y][j]){ans += cost[x][j] + cost[y][j];x = fa[x][j];y = fa[y][j];}}//x和y都在lca(x,y)前一步了ans += cost[x][0] + cost[y][0];return ans;
}void solve(){memset(fa,0,sizeof(fa));memset(cost,0,sizeof(cost));memset(dep,0,sizeof(dep));cin >> n >> m;for(int i = 1; i <= n; i ++){v[i].clear();w[i].clear();}for(int i = 1; i <= n - 1; i ++){cin >> a >> b >> c;v[a].push_back(b);v[b].push_back(a);w[a].push_back(c);w[b].push_back(c);}dfs(1,0);for(int i = 0; i < m; i ++){cin >> a >> b;cout << lca(a,b) << '\n';}
}int main(){ios::sync_with_stdio(0);cin.tie(0);int t;cin >> t;while(t --){solve();}return 0;
}
http://www.jsqmd.com/news/10923/

相关文章:

  • 数据库设计原则文档 - 指南
  • AI元人文:创新空间的深度探索与未来蓝图
  • 光流估计(可用于目标跟踪) - 教程
  • Redis 64字节分界线与跳表实现原理 - 实践
  • VUE---await的运用
  • 基于最小二乘(LS)信道估计的MATLAB实现
  • 2025焊接件加工制造厂家口碑最新推荐榜:实力工艺与市场口碑
  • 完整教程:计算机环境、用户与系统变量
  • 2025舒适轮胎最新推荐榜:卓越减震与静音性能的驾乘体验之选
  • 螺杆泵厂家最新推荐榜:高效耐用与技术创新实力解析
  • 2025机械加工厂家实力排行榜:技术精度与供货效率权威测评
  • 2025耐磨轮胎厂家TOP5推荐:超强抓地力与持久耐用性深度
  • echart 导出图片及自定义图片名称
  • 3.1.83.2.03.3.1,Apache DolphinScheduler集群升级避坑指南
  • 2025 空气离合器生产厂家最新推荐榜:电网冲击缓解技术测评与可靠性排行,含单片多片机型及核心部件企业
  • 2025 气动离合器厂家最新推荐榜权威发布:聚焦博得 PLC 技术与新兴品牌降本优势多片式气动离合器/气动离合器电磁阀/气动离合器气缸/气动离合器摩擦片/单片式气动离合器厂家推荐
  • Unicode 编码解码工具类
  • 2025 木粉源头厂家最新推荐榜:全品类适配 / 稳定供应 / 技术赋能品牌权威解析,采购必看杂/刨花/木塑/化工/造纸/香/猫砂木粉厂家推荐
  • mergeGDS
  • 读书笔记
  • 有奖话题:Data Agent for Meta 能否成为企业级 “数据大脑”?
  • 汉印打印机N41BT驱动 安装后无法打印
  • 新的练习项目
  • 最简单的 Web 打印方案:用 5 分钟上手 web-print-pdf(npm 包) - 实践
  • 2025 年塑木厂家最新推荐:实力厂家排行榜 —— 含围栏地板栈道等产品企业技术服务优势解析塑木地板/栈道/护栏/门板/凉亭/墙板/托盘厂家推荐
  • 如何将GIS属性一键快速标注到AutoCAD图纸上?
  • 深入解析:设计模式(C++)详解——命令模式(2)
  • 坯子插件库 v3.2.1 for SketchUp 2022-2024下载与安装教程
  • 免费绿色版识别软件,OCR识别软件!最全安装使用教程(附下载地址)
  • 实用指南:云原生网络基础设施的核心组件Envoy