Always On the Run 永不停歇

题目链接:https://acs.jxnu.edu.cn/problem/HDU1474

描述:

吱吱作响的轮胎。探照灯。哀嚎的警笛。到处都是警车。 Trisha Quickfinger 又做到了!偷“蒙娜丽莎”比计划的要困难得多,但成为世界上最好的艺术窃贼意味着期待意想不到的事情。所以她就在这里,包裹​​着的框架紧紧地夹在她的胳膊下,跑着赶往北行的地铁去戴高乐机场。
但比真正偷走这幅画更重要的是摆脱即将跟踪她的警察。 Trisha 的计划很简单:在几天内,她将从一个城市飞往另一个城市,每天一班。当她有理由确定警察已经迷失了踪迹时,她将飞往亚特兰大并与她的“客户”(仅称为 P 先生)会面以交付这幅画。
她的计划很复杂,因为如今,即使你在偷昂贵的艺术品,你也必须注意你的支出预算。因此,Trisha 希望在逃生航班上花费尽可能少的钱。这并不容易,因为航空公司的价格和航班可用性每天都在变化。航空公司连接的价格和可用性取决于所涉及的两个城市和旅行日期。每对城市都有一个每隔几天重复的“航班时刻表”。对于每对城市和每个方向,周期的长度可能不同。
特丽莎虽然擅长偷画,但在订机票的时候很容易弄糊涂。这就是你进来的地方。

输入:

输入包含 Trisha 试图逃跑的几个场景的描述。每个描述都以包含两个整数 n 和 k 的行开始。 n 是 Trisha 的逃生可能带她经过的城市数量,k 是她将乘坐的航班数量。城市编号为 1、2、...、n,其中 1 是她的起点巴黎,n 是她的最终目的地亚特兰大。这些数字将满足 2 <= n <= 10 和 1 <= k <= 1000。
接下来给你 n(n - 1) 个航班时刻表,每条线路一个,描述每对可能的城市之间的联系。前 n - 1 个航班时刻表对应从城市 1 到所有其他城市 (2, 3, ..., n) 的航班,接下来的 n - 1 条线路对应从城市 2 到所有其他城市 (1, 3, 4) 的航班, ..., n) 等等。
航班时刻表本身的描述以整数 d 开头,以天为单位的周期长度,1 <= d <= 30。接下来是 d 个非负整数,表示两个城市之间的航班费用第 1、2、...、d 天。成本为 0 表示当天两个城市之间没有航班。
因此,例如航班时刻表“3 75 0 80”表示第一天的航班费用为75,第二天没有航班,第三天的费用为80,然后循环重复:第四天的机票75,第五天没有航班,以此类推。
输入由具有 n = k = 0 的场景终止。

输出:

对于输入中的每个场景,首先输出场景的编号,如示例输出所示。 如果 Trisha 有可能旅行 k 天,从城市 1 开始,每天飞往与前一天不同的城市,最后(k 天后)到达城市 n,则打印“The best flight costs x. '',其中 x 是 k 个航班可以花费的最少金额。
如果无法以这种方式旅行,请打印“No flight possible.”。
在每个场景后打印一个空行。

样例输入:

3 6
2 130 150
3 75 0 80
7 120 110 0 100 110 120 0
4 60 70 60 50
3 0 135 140
2 70 80
2 3
2 0 70
1 80
0 0

样例输出:

Scenario #1
The best flight costs 460.

Scenario #2
No flight possible.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值