#P1122. FDNY to the Rescue!
FDNY to the Rescue!
题目描述(Description)
纽约市消防局(FDNY)一直以其快速的火灾响应时间而自豪。为了进一步提升响应速度,他们希望派遣系统能够实时掌握每个地址距离最近的消防站。
你被聘请来开发这套系统软件。该软件的功能是:
输入火灾发生的地址、城市街道的路口(即交叉点)、各交叉点之间的通行时间;
输出每个消防站到该火灾地点所需的最短时间;
输出该消防站到火灾地点的最短路径;
所有消防站将按到达时间从短到长排序,以便调度员选择距离最近的可用消防站进行出动。
输入格式(Input)
第 行: 一个整数 ,表示城市中有多少个交叉点(编号从 到 ),。
第 到第 行: 一个 的邻接矩阵,表示每两个交叉点之间所需的时间(单位:分钟)。
值为 表示这两个交叉点之间没有直接道路;
其余值均为非负整数;
第 行第 列表示从交叉点 到交叉点 所需的时间;
对角线上的值为 (即自己到自己);
输入保证任意一个消防站都一定能到达火灾现场。
第 行: 一个或多个整数:
第一个整数表示火灾发生地对应的交叉点编号;
接下来的若干个整数表示各个消防站所在的交叉点编号。
输出格式(Output)
第一行输出列标题(用制表符 \t 分隔):
Org Dest Time Path 接下来的每一行输出一个消防站到火灾现场的最短路径信息,格式如下:
起点 终点 所需时间 完整路径(节点编号)
输出要求说明:
所有字段使用制表符 \t 分隔;
所有消防站按耗时升序排列;
若有多个消防站耗时相同,则顺序不限;
若存在多条耗时相同的最短路径,可任选一条输出;
若起点与终点为同一交叉点,时间为 ,路径仅输出一个点。
6
0 3 4 -1 -1 -1
-1 0 4 5 -1 -1
2 3 0 -1 -1 2
8 9 5 0 1 -1
7 2 1 -1 0 -1
5 -1 4 5 4 0
2 4 5 6
In the above input the last line
说明:
总共有 个交叉点;
最后一行代表火灾地点在交叉点 ,消防站在交叉点 、 和 。
Org Dest Time Path
5 2 2 5 2
4 2 3 4 5 2
6 2 6 6 5 2```