Description

维斯特洛大陆的原住民是森林之子,他们长得如孩童一般,善于使用石器,威力值35,用树叶树枝作为衣物,在森林里繁衍生息,与万物和平相处。他们会使用古老的魔法(比如绿之视野),威力值55。后来先民从维斯特洛大陆架登陆,凭借手中的青铜兵器和战马大举入侵,威力值分别是35和55。森林之子凭借魔法顽强抵抗,并冒险利用龙晶制造出了一个神奇的强悍的物种——异鬼,威力值60。双方持久不下之时签订了和平协议,先民占据了维斯特洛大陆,森林之子只保有森林。

。。。

七大王国如火如荼兴起之时,在遥远海洋的另一端,一个神秘的家族悄然兴起——坦格利安家族。此家族拥有三条巨龙,威力值90+,经过一个世纪的备战,在领导者伊耿一世的带领下乘龙入侵维斯特洛大陆。

借助龙的力量,伊耿一世很快统一了维斯特洛的七大王国,建立了空前强大的坦格利安王朝,像所有外来入侵者一样,坦格利安家族摒弃了龙的信仰开始信仰七神,并且将龙由放养改为圈养,再加上坦格利安家族为了保持血统纯正,实行近亲婚姻,生出来的继承者精神病人越来越多,这导让坦格利安王朝开始了眼花缭乱的花样作死之旅。

。。。

众(wo)所(xia)周(che)知(de),当凯特琳·徒利得知自己女儿艾莉亚逃到赫伦堡后,非常担心女儿的安全。假设维斯特洛大陆共有nn个城市,共有n-1n−1条双向道路把这nn个城市连接起来。也就是说这是一棵树。凯特琳想尽快临冬城赶到赫伦堡。除了已知的n-1n−1条边外,凯特琳还知道一条额外的秘密路径(也是双向的):端点是是城市xx和城市yy,路径长度是zz。现在想考考寒假过后的你有没有刷过题,问你QQ个问题,每个问题给出临冬城(凯特琳所在城市)和赫伦堡(艾莉亚所在城市)的坐标,请你告诉凯特琳从临冬城到赫伦堡的最短路径长度是多少?

Input

第一行一个整数n(1\leq n\leq 100000)n(1≤n≤100000)。

以下n-1n−1行描述一颗树,每行u,v,wu,v,w表示一条从uu到vv长为ww的路径,u!=vu!=v。

下一行三个整数x,y,zx,y,z,意义如题(1\leq x,y\leq n, x!=y1≤x,y≤n,x!=y)。

下一行一个整数Q(100000)Q(100000)。

以下QQ行两个数字U,VU,V代表临冬城和赫伦堡的坐标。

1\leq w,z \leq 10001≤w,z≤1000

Output

对每次询问输出从临冬城到赫伦堡的最短路径长度。

Sample Input 1

6
1 2 2
1 3 4
2 6 3
3 4 1
3 5 10
3 6 6
3
1 4
2 5
3 2
Sample Output 1

5
16
6
Source

2019年集训队选拔赛

思路: 直接最短路肯定会T的。 注意题中提示“这是一棵树”,那么就可以转换为LCA问题。LCA最短路的基本模式:x = dis[a]+dis[b]-2*dis[lca(a,b)];但本题最后一条边是非树边(但我一直以为是任意一条边是非树边),那么就可以枚举到最后一条路的3种情况,(1)直接到达,(2)先经过非树边左节点(3)先经过非树边右节点。那么一共跑5次LCA寻找最优结果.不过我见过CF一道原题是用dijkstra弄最后一条边的,下次找找放上来对比一下。

#include <bits/stdc++.h>using namespace std;const double g=10.0,eps=1e-7;
const long long N=100000+10,inf=0x3f3f3f;struct edge{long long to,Next,w;
}e[N * 2];
long long dis[N],father[20][N],depth[N];
long long cnt,head[N],value[N];
void add(long long u,long long v,long long w)
{e[cnt].to=v;e[cnt].w=w;e[cnt].Next=head[u];head[u]=cnt++;
}
void dfs(long long u,long long f)
{father[0][u]=f;for(long long i=head[u];~i;i=e[i].Next){long long To=e[i].to;if(To!=f){dis[To]=dis[u]+e[i].w;depth[To]=depth[u]+1;dfs(To,u);}}
}
void init(long long n)
{depth[1]=1;dis[1]=0;dfs(1,-1);for(long long i=1;i<20;i++)for(long long j=1;j<=n;j++)father[i][j]=father[i-1][father[i-1][j]];
}
long long lca(long long x,long long y)
{if(depth[x]>depth[y])swap(x,y);for(long long i=0;i<20;i++)if((depth[y]-depth[x])>>i&1)y=father[i][y];if(x==y)return x;for(long long i=19;i>=0;i--){if(father[i][x]!=father[i][y]){x=father[i][x];y=father[i][y];}}return father[0][x];
}int main()
{long long t,n,m;
//      cin>>n;while(~scanf("%lld",&n)){cnt=0;memset(head,-1,sizeof head);for(long long i=1; i<n; i++){long long a,b,c;scanf("%lld%lld%lld",&a,&b,&c);add(a,b,c);add(b,a,c);}long long u,v,w;scanf("%lld%lld%lld",&u,&v,&w);init(n);scanf("%lld",&m);while(m--){long long a,b;long long x,y,z;scanf("%lld%lld",&a,&b);x = dis[a]+dis[b]-2*dis[lca(a,b)];y = dis[a]+dis[u]-2*dis[lca(a,u)] + dis[v]+dis[b]-2*dis[lca(v,b)] + w;//a->u->bz = dis[a]+dis[v]-2*dis[lca(a,v)] + dis[u]+dis[b]-2*dis[lca(u,b)] + w;//a->v->blong long ans = min(x,y);ans = min(ans,z);printf("%lld\n",ans);}}return 0;
}

转载于:https://www.cnblogs.com/tomjobs/p/10612569.html

C凛冬将至(LCA最短路+分情况5次LCA)相关推荐

  1. F.凛冬将至(带权LCA)

    凛冬将至 Time limit 1000 ms Description 题目链接https://csustacm.fun/problem/1085 维斯特洛大陆的原住民是森林之子,他们长得如孩童一般, ...

  2. 界面发布2019中国最富1000人榜:凛冬望春,马云问鼎中国首富

    界面发布2019中国最富1000人榜:凛冬望春,马云问鼎中国首富 界面联合亿安保险经纪重磅推出"2019中国最富1000人"榜单,这是界面连续第二年推出该榜单.1000位上榜富豪/ ...

  3. 立冬、小雪、凛冬将至:如何理解美国科技企业裁员潮?

    马斯克收购推特后,打了一个灭霸的响指,裁掉了7500人,约占2/3人.其他美国科技大厂也一路跟进:Meta裁员1万1千人.亚马逊1万人.英特尔裁员20%.谷歌裁员1万人--今年,美国科技公司有853家 ...

  4. 权力的游戏凛冬将至手游辅助升级脚本工具 新手操作指南

    权力的游戏是由著名美剧改编的一款3D战争策略手游,在画面上标新立异,游戏玩法也有不小的创新,还能在里面见到权游所有系列的英雄角色,甚至重现维斯塔洛历史风貌,还原经典.将同步上新的飞天助手权力的游戏凛冬 ...

  5. 【大数据人工智能AI2.0】GPT-4 office 全家桶发布,打工人凛冬将至 :Microsoft 365 Copilot (副驾驶)简介

    GPT-4 发布,只是一个开始. GPT-4 office 全家桶发布,打工人凛冬将至 Microsoft 365 Copilot 简介 北京时间今天凌晨,微软又发布了基于 GPT-4 的办公软件全家 ...

  6. 地下城与勇士(DNF)时空之门副本(格兰之火、瘟疫之源、卡勒特之初、暗黑圣战、绝密区域、昔日悲鸣、凛冬、谜之觉悟)(童年的回忆)

    1 时空之门副本图 格兰之火 瘟疫之源 卡勒特之初 暗黑圣战 绝密区域 昔日悲鸣 凛冬 谜之觉悟 2 格兰之火 通过时空之门的冒险家来回到了过去--格兰之森. 这时候的格兰之森还十分安详,除了精灵和兽 ...

  7. 区块链史上的一次冰河世纪,凛冬之下,随处可见的烂尾链

    新闻快讯,来源区视网分享<猪说区块链>栏目 投资需谨慎,片头说我们这个项目有美国航天研发的,我们有区块链溯源做技术支撑,而且去寻找外星人与地球祖源,另外我们有政府支持,大量资金投入,大胆的 ...

  8. 凛冬已至,望各位早日背上行囊出发

    文章目录 前言 凛冬已至,望各位早日背上行囊出发 前言 其实之前 大概半个月前 我就已经发过相同标题的文章了 但是由于之后有个读者留言 就说至于这么恼火吗? 国企 外企都可以去?非互联网大厂去不可吗? ...

  9. 长视频凛冬已至,芒果超媒、B站如何度过这个冬天?

    又是一年跨年时. 疫情"黑天鹅"飞过,由跨年晚会陪伴新年"倒计时",已成为时下最流行的跨年选择. 每年的跨年晚会,吸引诸多竞争者入局.据「不二研究」不完全统计: ...

  10. 2021年终总结:凛冬散尽,愿星河长明

    又是一年,时光流逝,不舍昼夜,如果给今年定个总基调,我觉得是艰难转折的一年.遇到不少事.不少人,让自己看清不少事情. 计划完成情况 工作方面,保持原有工作思路,寻找发展机会,争取收入上升30%. 换了 ...

最新文章

  1. 论文标题,这么写才算好!
  2. 计算机设备采购申请,办公室采购电脑请示报告
  3. 2021-03-12 Python基础核心概念 变量和简单数据类型
  4. 【CV】一文看懂目标检测神器YOLO5
  5. 权限操作-springSecurity快速入门-使用自定义页面
  6. listitem android,android-为contextmenu标识listitem的ID
  7. ubuntu安装mysql5.7.17_ubuntu 16.04安装mysql-server_5.7.17
  8. 计算机四级数据库真题,2015年计算机四级数据库真题
  9. Codeforces518 D. Ilya and Escalator
  10. 如何在 macOS Monterey 中更改光标颜色
  11. 分布式系统的发展历程
  12. 定位误差:基准位置公差、基准不重合误差
  13. 【收集】网络上各路大侠放出的面试题、求职技巧
  14. 解读品牌KOL运营之路
  15. idea中java版本设置
  16. 【苹果家庭推送iMessage】软件安装应用程序访问HealthKit HomeKit
  17. art-pi lvgl添加触摸事件部分代码
  18. | 应用打包还是测试团队老大难问题?
  19. VUE扫码枪js代码
  20. BatchNorm和LayerNorm的区别

热门文章

  1. UVA 1449 Dominating Patterns
  2. 经典算法问题-01-八皇后
  3. 用canvas画圆形图片
  4. 透视宝移动端对Unity手机游戏引擎监控实现 1
  5. 分享 | masked自编码器(MAE):一种可扩展的用于计算机视觉任务的自监督学习器
  6. Pytorch拟合心形函数
  7. 2018之后的Unity3d制作AR教程
  8. XSS过滤绕过总结_xss绕过字符过滤
  9. 破解Esxi服务器中Windows虚机密码(Esxi服务器Windows虚拟机忘记密码解决方案)
  10. python协程多线程HTMLParser下载mp3