#P1529. Shipping Routes
Shipping Routes
题目描述
Slow Boat to China航运公司需要开发一个程序来快速为客户提供运输报价。运输成本取决于货物大小和所需运输航段数量。每个航段连接两个仓库,但由于并非所有仓库之间都有直达航段,货物可能需要通过多个航段才能从起始仓库运抵目标仓库。
数据规格
- 每个数据集包含$1$到$30$个仓库,每个仓库用两个大写字母作为代码
- 航段是双向的,可存在于任意两个不同仓库之间
- 运输成本计算公式:货物大小 × 所需航段数 × 100美元
输入格式
第一行包含$1$到$10$之间的整数,表示数据集数量。每个数据集包含:
- 三个整数$M,N,P$:
- $M$:仓库数量($1 \leq M \leq 30$)
- $N$:航段数量($0 \leq N \leq \frac{M(M-1)}{2}$)
- $P$:运输请求数量($0 \leq P \leq 10$)
- $M$个仓库代码(空格分隔)
- $N$行航段信息,格式为"XX YY"
- $P$行运输请求,每行格式为:货物大小 AA BB(AA=起始仓库,BB=目标仓库)
输出格式
第一行输出应为 SHIPPING ROUTES OUTPUT 。对于每个数据集,应有一个输出部分,列出该输出部分对应的是哪个数据集,随后是 P 行所需信息。这 P 行中的每一行应列出相应运输的最低成本,或者短语 NO SHIPMENT POSSIBLE(无法运输 )。输出的结尾也应加以说明。生成与以下示例一致的输出。
每个运输请求输出最低成本(格式:\$数字)或"NO SHIPMENT POSSIBLE"
样例输入
2
6 7 5
AA CC QR FF DD AB
AA CC
CC QR
DD CC
AA DD
AA AB
DD QR
AB DD
5 AA AB
14 DD CC
1 CC DD
2 AA FF
13 AB QR
3 0 1
AA BB CC
5 AA CC
样例输出
SHIPPING ROUTES OUTPUT
DATA SET 1
$500
$1400
$100
NO SHIPMENT POSSIBLE
$2600
DATA SET 2
NO SHIPMENT POSSIBLE
END OF OUTPUT
</p>
来源
Mid-Atlantic 1996
关键点说明
- 需要计算任意两仓库间的最短路径(最少航段数)
- 当不可达时输出"NO SHIPMENT POSSIBLE"
- 成本计算示例:5单位货物从AA到AB(1个航段)→ \$5×1×100=\$500