编程介的小学生 2017-09-02 10:41 采纳率: 20.5%
浏览 814
已采纳

Escape Plan

Problem Description
Without turning his head, Vader snarled through his mask, ``The Millennium Falcon?"

Piett paused a moment before replying. He would have preferred to avoid that issue. ``Our tracking scanners are on it now," he responded a bit fearfully.

Vader turned to face the admiral, his towering figure looming over the frightened officer. Piett felt a chill course through his veins, and when the Dark Lord spoke again his voice conveyed an image of the dreadful fate that would be inflicted if his commands were not executed.

``I want that ship," he hissed.

The ice planet was rapidly shrinking to a point of dim light as the Millennium Falcon sped into space. Soon that planet seemed nothing more than one of the billions of light specks scattered throughout the black void.

But the Falcon was not alone in its escape into deep space. Rather, it was followed by an Imperial fleet that included the Avenger Star Destroyer and a half-dozen TIE fighter. The fighters moved ahead of the huge, slower-moving Destroyer, and closed in on the fleeing Millennium Falcon.

-- Star Wars, Episode V, the Empire Strikes Back

You are driving Millennium Falcon, the fastest starship of the entire galaxy, to escape Imperial pursuit. There are N planet systems, numbered from 0 to N - 1 , and some of them are connected by one-way hyperspace tunnels. Some hyperspace tunnels are passable at all times, while others are only available at certain times. Initially you are at the ice planet Hoth, the system numbered 0, at time 0 and you need to get to Sullust, the system numbered N - 1 . Since there are K Imperial Star Destroyers following you, and they will also make the jump into the hyperspace to continue the pursuit, you have decided to use the (K + 1) -th shortest path from Hoth to Sullust so as to minimize the possibility of being attacked halfway by Imperial starships; furthermore, in order to avoid detection, you do not want to risk staying at a system longer than T seconds.

Note that multiple shortest paths may require same travel time, and your travel path may not be simple (i.e. you are allowed to visit some systems and use some hyperspace tunnels more than once during your journey).

Input
There are multiple test cases in the input file. Each test case starts with four integers N , M , K and T , (1<=N<=100, 0<=M<=500, 0<=K<=9, 0<=T<=100) , the number of planet systems, the number of hyperspace tunnels between them, the pursuing Imperial Star Destroyers, and the maximal allowed time to stay at the same system, respectively. M lines follow, each line describes one of the hyperspace tunnels: four integers U , V , C , and W , (0<=U, V<=N - 1, 1<=C<=10, 1<=W<=1000000) meaning there's a tunnel from U to V , traveling through this path requires W seconds and it is only available every C seconds, starting from time 0 (i.e. 0, C, 2 * C, 3 * C... seconds).

Two successive inputs are separated by a blank line. N = 0, M = 0, K = 0, T = 0 indicates the end of input and should not be processed by your program.

Output
or every test case, you should output one integer on a separate line, the total time we need to reach Sullust in the format as indicated in the sample output; output -1 if no such path can be found.

Explanation for Sample Input / Output

The 1st shortest path in this example is 0 --> 4 , with a total travel time of 4 seconds; the 2nd shortest path is 0 (Wait 2 seconds) --> 2 (Wait 2 seconds) -->4, with a total travel time of 18 seconds; the 3rd shortest path is 0 (Wait 2 seconds) --> 2 (Wait 2 seconds) --> 3 --> 0 --> 4, with a total travel time of 28 seconds.

Sample Input
5 9 2 2
1 2 5 5
2 4 6 6
0 2 1 8
1 4 4 3
3 0 1 8
1 3 5 10
0 4 4 4
2 3 3 4
3 1 5 10

10 0 0 0

0 0 0 0

Sample Output
Case 1: 28
Case 2: -1

  • 写回答

1条回答

  • threenewbee 2017-09-16 16:26
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决