#P6945. [ICPC 2018 WF] Getting a Jump on Crime
[ICPC 2018 WF] Getting a Jump on Crime
Description
你的朋友罗宾(Robin)是一位超级英雄。当你第一次发现这个事时,你认为“每个人都需要有爱好,这个看起来比收集邮票有意思多了”,但是现在你十分感谢那些在你的家乡胡作非为的人。
每个晚上, 罗宾(Robin)用在房顶上跳跃的方式巡逻整座城市,并且看下面发生了什么。自然,超级英雄需要立即应对危机,所以罗宾(Robin)寻求你的帮助,帮他找出如何迅速走遍你的家乡。
你的家乡建立在一个方形的格子上,其中每个区块有 米。每个区块是一个独立的建筑,建筑有可能有不同的高度,为了从一个建筑到另一个(不一定相邻的)建筑,罗宾(Robin)从第一个房屋屋顶的中间跳到第二个房屋屋顶的中间。不能在空中改变方向,但可以选择起飞的角度。
当然,罗宾(Robin)不想撞到任何一个建筑。一些碰撞很难对超级英雄造成伤害,但是当有人击穿房屋主人的窗户时,他们容易感到生气。你向罗宾(Robin)解释物理学:“你的每次跳都有一个初速度,可以被分解成一个向前的水平分力和一个向上的竖直分力,且.当你行动时,你的水平分力保持不变,但是竖直分力受到重力的影响,设在你的家乡重力加速度。自然,你的斗篷可以让你忽略空气阻力的影响。这可以让你确定你的飞行路线和……”这是你注意到罗宾(Robin)已经睡着了-少一点数学,多一点超级英雄!
所以现在轮到你了:已经给出城市的布局和罗宾(Robin)秘密藏身处的位置,你需要确定罗宾(Robin)能到达哪些屋顶并给出最少跳跃次数。
请注意,如果罗宾(Robin)的跳跃经过一栋建筑的角落(四栋建筑交汇的地方),那么跳跃需要比所有四栋相邻建筑都高。
Input Format
输入的第一行包含六个整数,,,,,.这些代表了 的城市面积(单位:区块),每座建筑的宽度,罗宾(Robin)的起跳速度(单位:米每秒),和罗宾(Robin)藏身处的坐标。
第一行后面是对城市网格中建筑高度的描述。描述由行组成,每个行包含个非负整数。第j行包含建筑物 , . . . 的高度(单位:米)。高度最高不超过米。
Output Format
输出罗宾从秘密藏身处跳到每栋建筑屋顶所需的最小跳跃次数。如果无法到达建筑物的屋顶,则显示而不是跳跃次数。按输入文件中给定的顺序显示建筑,分为行,每行包含个值。
4 1 100 55 1 1
10 40 60 10
0 1 1 1
4 4 100 55 1 1
0 10 20 30
10 20 30 40
20 30 200 50
30 40 50 60
0 1 1 2
1 1 1 2
1 1 X 2
2 2 2 3
京公网安备 11011102002149号