C:曼哈顿距离(manhattan distance)问题
来源:互联网 发布:劳务派遣管理系统 php 编辑:程序博客网 时间:2024/05/21 19:22
两点(x1,y2)与(x2,y2)之间的曼哈顿距离为|x1-x2|+|y1-y2|,在上图中,红蓝黄三色线都表示两黑点间的曼哈顿距离。
现在Uncle Bird有n个点(xi,yi),显然,你可以算出任意两个点之间的曼哈顿距离。
那么问题来了:请你帮Uncle Bird算出任意两点之间曼哈顿距离的最大值。
小提示:因为点的数量很多(10^5),不能直接枚举两点计算距离,需要一个小小的trick。
Input
第一行输入一个正整数t(t<=10),表示测试数据组数。
每组测试数据的第一行输入一个正整数n(2<=n<=100000),表示点的个数。
接下来n行,每行输入两个用空格分开的整数xi和yi(-10000<=xi<=10000,-10000<=yi<=10000),表示第i个点的坐标。
Output
对每组输入数据,输出一行,
为任意两点间曼哈顿距离的最大值。
Sample Input
321 12 231 12 23 330 04 02 1
Sample Output
244
-------------------------------------------------------------------------------------------------------------------我是分界线-----------------------------------------------------------------------------------------------------
这题是关于manhattan distance的一个性质。考虑取一个在所有点左下角的点为基准A(x0,y0),那么对于满足x1<=x2和y1<=y2的点对B(x1,y1)和C(x2,y2),BC(曼哈顿距离,下同)=AC-AB。同理取右下角基准点,可以处理x1<=x2和y1>=y2的的点对的距离。这样,将两两点之间曼哈顿距离转换为到基准点的距离之差。那我们只需要用到基准点距离最大值减去最小值,就得到了两点之间距离最大值。对两个基准分别做这个操作然后取较大的就可以了。复杂度o(n)。
0 0
- C:曼哈顿距离(manhattan distance)问题
- 曼哈顿距离(Manhattan Distance )详解
- MD(manhattan distance) 和欧氏距离
- 街区最短路径问题 7 (数学 曼哈顿距离)
- Wannafly模拟赛4 B.Distance 最大曼哈顿距离
- Wannafly模拟赛4 B题 Distance 【最大曼哈顿距离】
- 最小编辑距离问题(Edition Distance)
- Teacher Bo (曼哈顿距离)
- 第六届蓝桥杯C++B组——移动距离(曼哈顿距离)
- 曼哈顿距离
- 曼哈顿距离
- 曼哈顿距离
- 曼哈顿距离
- 曼哈顿距离
- arcgis中曼哈顿距离、路网距离、near工具、Point Distance工具的使用
- 各种距离(Distance)
- hdu4666(曼哈顿距离+set或multiset)
- hdu 4666 Hyperspace (曼哈顿距离+set )
- Java面试题整理
- 编程练习的必备
- CodeForces 37E
- 文章标题
- 图像卷积下非极大值抑制 Sobel 的实现
- C:曼哈顿距离(manhattan distance)问题
- java 静态变量生命周期(类生命周期)
- vb qt 开发应用程序小结
- Roberts 边缘检测
- 自建网页项目-蚁族财富网-记录14
- hdu1087——Super Jumping! Jumping! Jumping!(最大递增子序列和)
- c++初始化数组
- C++编程入门系列之三十三(数组、指针和字符串:用字符数组存放和处理字符串)
- Elasticsearch搜素引擎入门