ssl1746-商务旅行【tarjan,LCA】
正题
题目大意
一个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】相关推荐
- 【codevs1036】商务旅行,LCA练习
商务旅行 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 某首都城市的商人要经常到各城镇去做生意,他们按自己的路线去做, ...
- 倍增LCA code[vs]1036商务旅行
n个点用n-1条边连接,求两个点间的最短路 显然可以想到用floyd预处理,但复杂度过高 所以一些巨发明了LCA 为什么这类最短路问题要找最近公共祖先,这是一个显然的问题,最近公共祖先说简陋了就是在这 ...
- 《商务旅行》解题报告
<商务旅行>解题报告 by mps [题目描述] 某首都城市的商人要经常到各城镇去做生意,他们按自己的路线去做,目的是为了更好的节约时间. 假设有N个城镇,首都编号为1,商人从首都出发,其 ...
- codevs——1036 商务旅行
1036 商务旅行 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 某首都城市的商人要经常到各城镇 ...
- 中船嘉年华邮轮揭幕全新企业品牌标识;美国运通全球商务旅行完成对Expedia集团旗下易信达的收购 | 全球旅报...
厦门W酒店闪耀登"鹭" 全新感官盛宴耀然揭幕.万豪国际集团旗下W酒店宣布,厦门W酒店开业.厦门W酒店业主方为宝龙集团.酒店坐落于厦门时尚的东部商圈,毗邻厦门新落成的宝龙一城地标购物 ...
- 商务旅行代理服务市场现状研究分析-
辰宇信息咨询市场调研公司最近发布-<2022-2028中国商务旅行代理服务市场现状研究分析与发展前景预测报告 > 内容摘要 本文研究中国市场商务旅行代理服务现状及未来发展趋势,侧重分析在中 ...
- 商务旅行,保护个人信息安全,需要遵守的基本原则
最近两年,由于美国国土安全部和美国海关边境保卫局(CBP)加强海关个人电子设备搜查力度,导致很多个人信息安全意识淡漠的游客遭遇麻烦,其中有因为"不当"微信内容而被遣返的中国女留学生 ...
- [CODEVS 1036]商务旅行
[问题描述] 某首都城市的商人要经常到各城镇去做生意,他们按自己的路线去做,目的是为了更好的节约时间. 假设有N个城镇,首都编号为1,商人从首都出发,其他各城镇之间都有道路连接,任意两个城镇之间如果有 ...
- P5236-[模板]静态仙人掌【tarjan,LCA】
正题 题目链接:https://www.luogu.com.cn/problem/P5236 题目大意 给一个边仙人掌(一条边至多在一个环中),每次询问两点之间的距离 解题思路 我们对于每个环新建方点 ...
最新文章
- 机器学习模型越来越大,开发者应该如何部署?
- es6之扩展运算符...
- salt '*' state.highstate 报错找不到文件,环境如下No Top file or master_tops data matches found....
- ETL工具Kettle使用
- [翻译]NUnit---Description and Exception Attributes(十一)
- 正则表达式知识详解(转自晴天碧日)
- Skywalking-04:扩展Metric监控信息
- Linux 下进入含空格的目录(以及文件夹名开头为`(`)
- Unity Qualcomm 3D音频插件
- java怎么输出英文字母表_Java程序设计(八)----输出英文字母表、希腊字母表
- 计算机软件工程规范国家标准
- PbootCMS百度小程序插件 DIY拖拽可视化布局 多端合一 一步到位
- 【合天网安】Burpsuite简介及MIME上传绕过实例
- 预算少怎么做ASO优化?
- 基于matlab的脑瘤mr图像处理_基于电势能改进的区域生长脑肿瘤图像分割
- IP地址、路由器、数据分片、地址管理、子网掩码、路由选择、公网与私网
- 廖雪峰git教程阅读之一
- 文本进行90度翻转HTML,字体逆时针旋转90度
- 51单片机内部外设:实时时钟(SPI)
- 计算机windows前台运行图标,获取 window任务栏已经打开应用程序窗口(也就是任务管理器中前台进程)的图标...
热门文章
- 顺丰gis产品经理_线上面试季丰图科技—顺丰旗下专注GIS领域
- HTML坐标不随着屏幕大小改变,HTML热区map坐标,随窗口大小自适应办法(javascript)...
- c++经典编程题_全国青少年软件编程等级考试C语言经典程序题10道十
- 墨迹天气语音包_小米有品“智能AI翻译机”评测,还内置了语音助手,随身WiFi功能...
- mysql查询重复的名字_Mysql中like用法:查询名字中含有风字的学生信息
- mybatis plus 批量保存_mybatis源码分析
- 吴恩达DeepLearningCourse4-卷积神经网络
- [Spring5]AOP底层原理
- [设计模式]适配器模式
- C++string容器-字符串拼接