2013 编程之美挑战赛 仙剑5前传之璇光殿

时间限制: 4000ms 内存限制: 256MB

描述

仙剑是一款经典的RPG游戏,最近又推出了仙剑5前传。Alice身为忠实的仙剑粉丝,当然是在第一时间就开始玩了。迷宫以及各类小游戏是仙剑系列的一大传统,这次也不例外。而且还增加了称号系统,玩家如果在满足一定条件下通过迷宫或是完成小游戏,都可以获得相应的称号奖励。Alice虽然智商也不算太低,顺利的完成游戏还是没什么问题的,但是某些称号对于她来说好像就比较困难,所以她来找你帮忙。

在这个迷宫中,有很多魔法台需要关闭,也有很多宝箱可以捡。你最主要的目标就是关闭所有的魔法台,一旦所有魔法台都被关闭后,立刻通关。这个迷宫中有两个称号可以获得,一个要求拣到所有的宝箱,另一个要求在一定时间内完成。

为了让迷宫变得更加复杂,迷宫中还有两种特殊的法阵。第一种法阵是加速阵,可以瞬间使玩家的移动速度提高5m/s(初始速度为30m/s)。第二种是五灵阵,玩家必须按照五灵相克相生的关系来选择开启适当的阵法才可顺利通过。若玩家顺利通过五灵阵,则也可获得5m/s的速度提升,反之,用户则会被困在原地5秒钟。幸运的是,Alice在网上找到了攻略,所以在通过五灵阵时,她只需要查看一下即可保证顺利通过。不过介于她的思考速度,她需要3秒钟来查看攻略。

Alice想知道如果她想要拣到所有的宝箱,那么最快多长时间能够通过这个迷宫呢?

输入

输入数据的第一行包含一个整数 T,表示数据组数。

接下来有 T 组数据,每组数据中:

  • 第一行包含两个整数 N, M,表示迷宫中节点个数以及边数。节点由 1 到 N 标号。

  • 接下来的 M 行每行包含三个整数 a, b, len,表示节点 a 和节点 b 之间有一条长度为 len 米的路。

  • 接下来的一行包含一个整数 NM,表示魔法台的个数。下一行 NM 个整数,表示魔法台所在的节点编号。

  • 接下来的一行包含一个整数 NT,表示宝箱的个数。下一行 NT 个整数,表示宝箱所在的节点编号。

  • 接下来的一行包含一个整数 NS,表示加速阵的个数。下一行 NS 个整数,表示加速阵所在的节点编号。

  • 接下来的一行包含一个整数 NR,表示五灵阵的个数。下一行 NR 个整数,表示五灵阵所在的节点编号。

  • 最后一行包含一个整数 S,表示玩家的出发节点编号。

输出

对于每组数据,输出一行"Case #X: Y",其中 X 为数据组数编号,从 1 开始,Y 为通过该迷宫的最短时间,四舍五入保留5位小数。

数据范围

1 ≤ T ≤ 10

0 ≤ len ≤ 1000

小数据:

1 ≤ N ≤ 30

0 ≤ M ≤ 200

1 ≤ NM ≤ 3

0 ≤ NT, NS, NR ≤ 3

大数据:

1 ≤ N ≤ 100

0 ≤ M ≤ 2000

1 ≤ NM ≤ 4

0 ≤ NT, NS, NR ≤ 4

提示

1. 每个节点上至多有一个特殊的物品。

2. 当你经过魔法台,加速阵以及宝箱时,可以选择不触发它。

3. 每个法阵都是一次性的,不会被多次触发。

样例输入
2
2 1
1 2 30
1 2
0
0
0
1
3 2
1 2 100
2 3 100
1
3
0
0
1
2
1
样例输出
Case #1: 1.00000
Case #2: 9.19048
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值