当前你的浏览器版本过低,网站已在兼容模式下运行,兼容模式仅提供最小功能支持,网站样式可能显示不正常。
请尽快升级浏览器以体验网站在线编辑、在线运行等功能。

建议使用的浏览器:

谷歌Chrome 火狐Firefox Opera浏览器 微软Edge浏览器 QQ浏览器 360浏览器 傲游浏览器

3939:Extended Manhattan Distance

题目描述
The streets in Manhattan form a grid. If the grid is aligned such that the grid lines are parallel to the x- and y-coordinate axes, the distance one needs to walk or drive from one point to the other, assuming you can only move along streets and cannot take short cuts through buildings, equals Δx + Δy. This is called the Manhattan distance.



Now assume that the land outside the city grid is completely flat with no obstacles that prevent moving anywhere. Suppose we want to move from point A to point B where these points can be on the grid or outside the grid. When traveling outside the city, the shortest distance between the two points in this case will not necessarily be the Manhattan distance. It will be the Manhattan distance if the two points are both on the grid. If both points are, for example, north of the grid, the shortest distance between the two points will be the straight-line (Euclidean) distance between them. In other cases, calculating the distance may be more complicated.
In this problem, two opposite corners of the city grid will be specified. It will be assumed that the grid lines are parallel to the coordinate axes, and that the distance between any two consecutive grid lines, horizontal and vertical, is 1 unit. Two points A and B on the plane with integer coordinates will also be specified. Write a program to calculate the shortest distance between the two points, given that we can only move along the grid lines (i.e. in the city streets) within the city grid.
输入解释
Input will consist of multiple datasets. Each dataset will consist of a single line with eight integers, as follows:
xL yL xU yU xA yA xB yB

describing the points L, U, A, and B. L and U are the lower-left corner and the upper-right corner of the city grid, respectively. A and B are the two points between which we wish to travel.
All input integers will be in the range from -1000 to 1000 (inclusive), with xL < xu and yL < yU. End of data will be signified by a line with eight zeros.
输出解释
For each data set, print one line containing the distance of the shortest path between the A and B, printed to to three decimal places of precision.
输入样例
0 0 4 4 -1 0 5 3
00442253
00000000
输出样例
7.650
3.414

该题目是Virtual Judge题目,来自 北京大学POJ

源链接: POJ-3939

最后修改于 2020-10-29T07:16:13+00:00 由爬虫自动更新

共提交 0

通过率 --%
时间上限 内存上限
1000 65536