正题


题目大意

一个n-1个点的有向无环图,给出若干个点,要求依次到达的最少时间。


解题思路

有向无环图我们可以把其看做一颗树,然后每次用LCA求两个点之间的距离,然后把所有距离统计一下就是结果。


代码

#include<cstdio>
#define min(a,b) a<b?a:b
using namespace std;
struct line{int next,to;
}a[60001],num[60001];
int father[30001],n,m,q,p,v[30001],tot,ls[30001],t,x,y,in[30001];
int last,ls1[30001],tot2,nber,sum,w[30001],d[30001],ans[30001];
void addl(int x,int y)//加边
{a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot;
}
void addn(int x,int y)//表示要求这两个点的距离
{num[++tot2].to=y;num[tot2].next=ls1[x];ls1[x]=tot2;
}
int find(int x)//并查集
{return x==father[x]?x:father[x]=find(father[x]);
}
void tarjan(int x)
{v[x]=1;for (int i=ls[x];i;i=a[i].next){int y=a[i].to;if (v[y]) continue;d[y]=d[x]+1;//计算深度tarjan(y);//tarjan子节点father[y]=x;}for (int i=ls1[x];i;i=num[i].next){int y=num[i].to,id=w[i];if (v[y]==2)ans[id]=min(ans[id],d[x]+d[y]-d[find(y)]*2);//计算距离}v[x]=2;
}
int main()
{scanf("%d",&n);for (int i=1;i<=n;i++)father[i]=i;for (int i=1;i<n;i++){scanf("%d%d",&x,&y);addl(x,y);addl(y,x);}scanf("%d",&m);last=1;for (int i=1;i<=m;i++){scanf("%d",&x);ans[i]=1<<30;addn(x,last);w[tot2]=i;addn(last,x);w[tot2]=i;ans[i]=last==x?0:ans[i];last=x;}tarjan(1);for (int i=1;i<=m;i++)sum+=ans[i];printf("%d",sum);
}

ssl1746-商务旅行【tarjan,LCA】相关推荐

  1. 【codevs1036】商务旅行,LCA练习

    商务旅行 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 某首都城市的商人要经常到各城镇去做生意,他们按自己的路线去做, ...

  2. 倍增LCA code[vs]1036商务旅行

    n个点用n-1条边连接,求两个点间的最短路 显然可以想到用floyd预处理,但复杂度过高 所以一些巨发明了LCA 为什么这类最短路问题要找最近公共祖先,这是一个显然的问题,最近公共祖先说简陋了就是在这 ...

  3. 《商务旅行》解题报告

    <商务旅行>解题报告 by mps [题目描述] 某首都城市的商人要经常到各城镇去做生意,他们按自己的路线去做,目的是为了更好的节约时间. 假设有N个城镇,首都编号为1,商人从首都出发,其 ...

  4. codevs——1036 商务旅行

    1036 商务旅行  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果 题目描述 Description 某首都城市的商人要经常到各城镇 ...

  5. 中船嘉年华邮轮揭幕全新企业品牌标识;美国运通全球商务旅行完成对Expedia集团旗下易信达的收购 | 全球旅报...

    厦门W酒店闪耀登"鹭" 全新感官盛宴耀然揭幕.万豪国际集团旗下W酒店宣布,厦门W酒店开业.厦门W酒店业主方为宝龙集团.酒店坐落于厦门时尚的东部商圈,毗邻厦门新落成的宝龙一城地标购物 ...

  6. 商务旅行代理服务市场现状研究分析-

    辰宇信息咨询市场调研公司最近发布-<2022-2028中国商务旅行代理服务市场现状研究分析与发展前景预测报告 > 内容摘要 本文研究中国市场商务旅行代理服务现状及未来发展趋势,侧重分析在中 ...

  7. 商务旅行,保护个人信息安全,需要遵守的基本原则

    最近两年,由于美国国土安全部和美国海关边境保卫局(CBP)加强海关个人电子设备搜查力度,导致很多个人信息安全意识淡漠的游客遭遇麻烦,其中有因为"不当"微信内容而被遣返的中国女留学生 ...

  8. [CODEVS 1036]商务旅行

    [问题描述] 某首都城市的商人要经常到各城镇去做生意,他们按自己的路线去做,目的是为了更好的节约时间. 假设有N个城镇,首都编号为1,商人从首都出发,其他各城镇之间都有道路连接,任意两个城镇之间如果有 ...

  9. P5236-[模板]静态仙人掌【tarjan,LCA】

    正题 题目链接:https://www.luogu.com.cn/problem/P5236 题目大意 给一个边仙人掌(一条边至多在一个环中),每次询问两点之间的距离 解题思路 我们对于每个环新建方点 ...

最新文章

  1. 机器学习模型越来越大,开发者应该如何部署?
  2. es6之扩展运算符...
  3. salt '*' state.highstate 报错找不到文件,环境如下No Top file or master_tops data matches found....
  4. ETL工具Kettle使用
  5. [翻译]NUnit---Description and Exception Attributes(十一)
  6. 正则表达式知识详解(转自晴天碧日)
  7. Skywalking-04:扩展Metric监控信息
  8. Linux 下进入含空格的目录(以及文件夹名开头为`(`)
  9. Unity Qualcomm 3D音频插件
  10. java怎么输出英文字母表_Java程序设计(八)----输出英文字母表、希腊字母表
  11. 计算机软件工程规范国家标准
  12. PbootCMS百度小程序插件 DIY拖拽可视化布局 多端合一 一步到位
  13. 【合天网安】Burpsuite简介及MIME上传绕过实例
  14. 预算少怎么做ASO优化?
  15. 基于matlab的脑瘤mr图像处理_基于电势能改进的区域生长脑肿瘤图像分割
  16. IP地址、路由器、数据分片、地址管理、子网掩码、路由选择、公网与私网
  17. 廖雪峰git教程阅读之一
  18. 文本进行90度翻转HTML,字体逆时针旋转90度
  19. 51单片机内部外设:实时时钟(SPI)
  20. 计算机windows前台运行图标,获取 window任务栏已经打开应用程序窗口(也就是任务管理器中前台进程)的图标...

热门文章

  1. 顺丰gis产品经理_线上面试季丰图科技—顺丰旗下专注GIS领域
  2. HTML坐标不随着屏幕大小改变,HTML热区map坐标,随窗口大小自适应办法(javascript)...
  3. c++经典编程题_全国青少年软件编程等级考试C语言经典程序题10道十
  4. 墨迹天气语音包_小米有品“智能AI翻译机”评测,还内置了语音助手,随身WiFi功能...
  5. mysql查询重复的名字_Mysql中like用法:查询名字中含有风字的学生信息
  6. mybatis plus 批量保存_mybatis源码分析
  7. 吴恩达DeepLearningCourse4-卷积神经网络
  8. [Spring5]AOP底层原理
  9. [设计模式]适配器模式
  10. C++string容器-字符串拼接