Hackerrank Going to the Office
Problem Statement
Ms.Kox enjoys her job, but she does not like to waste extra time traveling to and from her office. After working for many years, she knows the shortest-distance route to her office on a regular day.
Recently, the city began regular maintenance of various roads. Every day a road gets blocked and no one can use it that day, but all other roads can be used. You are Ms. Kox's new intern and she needs some help. Every day, you need to determine the minimum distance that she has to travel to reach her office.
Input Format
There are N cities numbered 0 to N-1 and M bidirectional roads.
- The first line of the input contains two integers N and M.
- M lines follow, each containing three space-separated integers u , v
and w, where u and v are cities connected by a bi-directional road and w
is the length of this road. There is at most one road between any two
cities and no road connects a city to itself. - The next line contains two integers S and D. S is the city where Ms. Kox lives and D is the city where her office is located.
- The next line contains an integer Q, the number of queries.
- Q lines follow, each containing two integers u and v, where the road between u and v has been blocked that day.
Output Format
Output Q lines, with each line containing the minimum distance Ms.Kox has to travel on that day. If there is no path, print "Infinity".
Constraints
0 < N < 200,000
0 < M < 200,000
0 < Q < 200,000
0 <= S , D < N
Sample Input
6 9
0 1 1
1 2 1
2 3 1
3 4 1
4 5 1
2 4 5
3 5 8
1 3 3
0 2 4
0 5
9
0 1
1 2
2 3
3 4
4 5
2 4
3 5
1 3
0 2
Sample Output
7
6
6
8
11
5
5
5
Solution
不失一般性,先假设无向图G连通。
考虑G的以s为根的最短路树(SPT)。
删除边(u, v)后原SPT分裂成两部分,子树S和子树V。
若边(u, v)不在原SPT的s-t路上,易见最短路长度不变。
否则,若(u, v)不是G的s-t割,则新最短路存在且可取成如下形式:
从s出发沿子树s走到点x, 经一条连接子树S与子树V的不在原SPT中的 (S-V non-STP) 边 (x, y)走到子树V中,只经过子树V中的点从y走到t。
Proof
首先,显而易见删除边(u,v)后,图G中的任意s-t路都包含至少一条S-V non-STP边。
接下来证明:存在一条新s-t最短路,只经过一条S-V non-STP边。
反证法:假设所有新s-t最短路都经过至少两条S-V non-STP边,
任取一条新s-t最短路P0,设P0最晚经过的S-V non-STP边为(x, y),则有
|P0 (s, x)| >= |PS (s, x)|
用PS (s, x)代替P0 (s, x)即导出矛盾。
将上述讨论形式化:
一定存在一条形如
P(s, t) = P0 (s, x) + (x, y) + PV (y, t)
新s-t最短路
下一步证明:存在一条只经过子树V中点的y-t最短路PV (y, t)满足:
|PV(y, t)| = |PG(y, t)|
PG(y, t)表示在原图G中的某条y-t最短路
仍采用反证法:
假设原图G中的所有y-t最短路都要经过子树S中的点,
Hackerrank Going to the Office的更多相关文章
- .NET Core 首例 Office 开源跨平台组件(NPOI Core)
前言 最近项目中,需要使用到 Excel 导出,找了一圈发现没有适用于 .NET Core的,不依赖Office和操作系统限制的 Office 组件,于是萌生了把 NPOI 适配并移植到 .NET C ...
- [.NET] 打造一个很简单的文档转换器 - 使用组件 Spire.Office
打造一个很简单的文档转换器 - 使用组件 Spire.Office [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6024827.html 序 之前,& ...
- 高效而稳定的企业级.NET Office 组件Spire(.NET组件介绍之二)
在项目开发中,尤其是企业的业务系统中,对文档的操作是非常多的,有时几乎给人一种错觉的是”这个系统似乎就是专门操作文档的“.毕竟现在的很多办公中大都是在PC端操作文档等软件,在这些庞大而繁重的业务中,单 ...
- 在禅道中实现WORD等OFFICE文档转换为PDF进行在线浏览
条件: 安装好禅道的服务器 能直接浏览PDF的浏览器(或通过 安装插件实现 ) 文档转换服务程序(建议部署在另一台服务器上) 实现 原理: 修改禅道的文件预览功能(OFFICE文档其使用的是下 ...
- RMS:Microsoft Office检测到您的信息权限管理配置有问题。有关详细信息,请与管理员联系。(转)
原文:https://zhidao.baidu.com/question/435088233.html RMS有两种方式: 1.使用微软的服务器,这个是连接到微软的服务器上面做权限控制,在今年5月份之 ...
- C#将Word转换成PDF方法总结(基于Office和WPS两种方案)
有时候,我们需要在线上预览word文档,当然我们可以用NPOI抽出Word中的文字和表格,然后显示到网页上面,但是这样会丢失掉Word中原有的格式和图片.一个比较好的办法就是将word转换成pdf,然 ...
- 针对每种Windows Server 操作Excel、Word等Office组件遇到“ComException"、”80070005“等COM错误的解决方案大汇总
以下所有Excel错误的解决方案,同样适用于Word.PowerPoint等Office产品. 以下解决方案中,如果出现"安装Excel组件",是适用于遇到Excel错误的.如果是 ...
- 解决NTKO Office中文文件名保存到服务器时出现乱码的问题
再使用NTKO office控件时,在ntko往服务器提交文件时,中文文件名会出现乱码的问题! 其实解决这个问题可以换一种思路,在ntko往服务器提交文件时英文肯定是不会出现乱码的问题的! 那么想办法 ...
- office 2010 word每次启动都需要配置
解决方式: 进入cmd,运行以下命令即可,如果提示已存在,选择Y覆盖就行了 reg add HKCU\Software\Microsoft\Office\14.0\Word\Options /v No ...
随机推荐
- 10分钟使用纯css实现完整的响应式导航菜单栏的效果
在开发hexo主题pixel的时候没有选择bootstrap和jquery实现响应式菜单,而是 使用了纯css实现响应式菜单,这个想法来自于You-Dont-Need-Javascript, 这个项目 ...
- WebConfig 详解
一.Web.Config继承特性 首先我们就来看看配置文件的继承层次.都知道在ASP.NET中有很多的配置文件,如machine.config,web.config,特别是web.config出现在很 ...
- AJAX——核心XMLHttpRequest对象
AJAX大家已经都知道了,是为了实现异步通讯,提高用户体验度,而将很多旧知识(XML,DOM,JavaScript,HTML,Jquery,Css……)重新融合的一个新的知识框架.而,XMLHttpR ...
- PotPlayer为播放而生的专业播放器
韩国,比较牛逼的视频播放器.专注与本地视频播放,值得拥有.... 免费下载:http://yunpan.cn/cmZ5ELC6DTI8Y 访问密码 4bf1
- C# 反射范范的理解下
程序进行时引入程序集.动态的调用方法属性事件. Assembly类. type类.
- git--- 拉取代码
- 【心得】在脱离TFS的情况下,如何解除TFS绑定?
我们知道在有TFS的情况下,在文件-源代码管理-高级中可以解除TFS绑定. 但是如果我们出差去了,拿着笔记本电脑,打开解决方案的时候,会总是提示无法连接TFS,并且在源代码管理处尝试解除的时候也提示无 ...
- canvas判断边距,反弹和拖拽的综合实例
效果如图所示,可以实现精准拖拉和触界反弹 var canvas = document.getElementById("canvas"); var cxt = canvas.getC ...
- Hibernate正向工程(实体类-->数据库)
1,新建实体类News.java package com.hanqi.dao; import java.util.Date; public class News { private Integer i ...
- [转]session 持久化问题(重启服务器session 仍然存在)
转:http://xiaolongfeixiang.iteye.com/blog/560800 关于在线人数统计,大都使用SessionListener监听器实现. SessionListener 触 ...