最快路线
【问题描述】给出一个城市的地图,你可以把它看成是一个H*W的网格,每一个点是一个十字路口。每一个点用(r,c)表示,表示从北往南的第r 条路和从西往东的第c 条路的交叉点。路口有红绿灯,他们的初始状态、红绿变换的周期都是已知的。你现在在一个点(r1,c1),目的地是点(r2,c2),请问最少要多少时间才能从所在地到达目的地?
假设你从一个点到相邻的另一个点只要20 秒。通过路口的规则如上题。
注意,出发时可以直接向任意4 个方向走,不用等出发点的绿灯。当然,车子不能开到城市外面。还有,不能抢绿灯,比如绿灯从第0 秒开始时开始到第1秒开始时结束,那么第一秒车子不能通过。同理,如果红灯从第0 秒开始时开始到第一秒开始时结束,那么第一秒车子能通过。【输入文件】输入文件为fast.in。
第一行两个数字,H 和W。代表城市南北向有H 条路,东西向有W 条路。接下来有H*W行,每行描述一个红绿灯。其中第行表示这个路口的红绿灯。格式如下:X T0 T1 T2
其中X 为‘R’或‘G’,分别表示初始时南北方向是红灯还是绿灯。t0表示初始状态持续的时间,之后开始周期性的红绿变换。其中南北方向红灯的持续时间为t1,南北方向绿灯的持续时间为t2。其中t0、t1、t2都不超过60。所有时间以秒为单位。最后有两行,分别表示起点和终点。格式为:r c,表示(r,c)。
【输出文件】输出文件为fast.out。仅包含一个整数,为最短所需要的时间。
【输入样例】
3 3
G 1 16 16
R 27 24 27
G 26 50 52
G 43 24 2
R 30 51 13
R 17 35 18
G 50 24 22
G 26 16 58
G 6 6 31
2 2
1 1
【输出样例】47
【问题描述】给出一个城市的地图,你可以把它看成是一个H*W的网格,每一个点是一个十字路口。每一个点用(r,c)表示,表示从北往南的第r 条路和从西往东的第c 条路的交叉点。路口有红绿灯,他们的初始状态、红绿变换的周期都是已知的。你现在在一个点(r1,c1),目的地是点(r2,c2),请问最少要多少时间才能从所在地到达目的地?
假设你从一个点到相邻的另一个点只要20 秒。通过路口的规则如上题。
注意,出发时可以直接向任意4 个方向走,不用等出发点的绿灯。当然,车子不能开到城市外面。还有,不能抢绿灯,比如绿灯从第0 秒开始时开始到第1秒开始时结束,那么第一秒车子不能通过。同理,如果红灯从第0 秒开始时开始到第一秒开始时结束,那么第一秒车子能通过。【输入文件】输入文件为fast.in。
第一行两个数字,H 和W。代表城市南北向有H 条路,东西向有W 条路。接下来有H*W行,每行描述一个红绿灯。其中第行表示这个路口的红绿灯。格式如下:X T0 T1 T2
其中X 为‘R’或‘G’,分别表示初始时南北方向是红灯还是绿灯。t0表示初始状态持续的时间,之后开始周期性的红绿变换。其中南北方向红灯的持续时间为t1,南北方向绿灯的持续时间为t2。其中t0、t1、t2都不超过60。所有时间以秒为单位。最后有两行,分别表示起点和终点。格式为:r c,表示(r,c)。
【输出文件】输出文件为fast.out。仅包含一个整数,为最短所需要的时间。
【输入样例】
3 3
G 1 16 16
R 27 24 27
G 26 50 52
G 43 24 2
R 30 51 13
R 17 35 18
G 50 24 22
G 26 16 58
G 6 6 31
2 2
1 1
【输出样例】47
