【最大曼哈顿距离】POJ2926 Requirements
来源:互联网 发布:网络保密管理 编辑:程序博客网 时间:2024/04/30 21:31
POJ2926
题目大意:
给定n个5维坐标的点,求这n个点中曼哈顿距离的最大值。
暴力枚举肯定超时。
只考虑二维空间上两个坐标之间的曼哈顿距离(x1, y1) 和 (x2, y2),|x1-x2| +|y1-y2|去掉绝对值符号后共有下列四种情况
(x1-x2) + (y1-y2), (x1-x2) + (y2-y1), (x2-x1) + (y1-y2), (x2-x1) + (y2-y1)
转化一下:
(x1+y1) - (x2+y2), (x1-y1) - (x2-y2), (-x1+y1) - (-x2+y2), (-x1-y1) - (-x2-y2)
注意符号
显然,任意给两个点,我们分别计算上述四种情况,那么最大值就是曼哈顿距离。
转化后,“-”号两侧的坐标形式是一样的。维数为5,因此我们可以用二进制枚举。
最大曼哈顿距离 = max{每种情况下的最大值-最小值}
可以扩展成M维的。
CODE:
//POJ2926
#include<cstdio>#include<algorithm>#define fo(i,a,b) for (int i = a;i <= b;i ++)using namespace std;const int maxn = 100005;double A[maxn][5];int N;double ans;int main(){scanf("%d",&N);fo(i,1,N) fo(j,0,4) scanf("%lf",&A[i][j]);ans = -1e20;fo(stat,0,(1 << 5)-1){double ma = -1e20;double mi = 1e20;fo(i,1,N){double t = 0;fo(j,0,4)if (stat & (1 << j)) t += A[i][j];else t -= A[i][j];ma = max(ma,t);mi = min(mi,t);}ans = max(ans,ma-mi);}printf("%.2f\n",ans);}
0 0
- 【最大曼哈顿距离】POJ2926 Requirements
- 【POJ2926】Requirements【二进制】【最大曼哈顿距离】
- HDU4666+POJ2926【最远曼哈顿距离】
- POJ2926-Requirements,曼哈顿距离。去掉绝对值符号暴力枚举所有情况,神薙!
- ]Requirements[最远曼哈顿距离]
- zoj2688 Requirements 曼哈顿距离
- poj2926 Requirements
- poj 2926 Requirements (曼哈顿距离)
- POJ 2926 Requirements【最远曼哈顿距离】
- [poj 2926]Requirements[最远曼哈顿距离]
- poj 2926 Requirements N维最远曼哈顿距离
- 最远曼哈顿距离小结 poj 2926 Requirements&hdu 4666 Hyperspace
- 最远曼哈顿距离小结 poj 2926 Requirements&hdu 4666 Hyperspace
- POJ 2926 Requirements(多维最远曼哈顿距离)
- POJ 2926 Requirements (多维最远曼哈顿距离)
- poj 2926 Requirements 【5维点集最远曼哈顿距离】
- POJ 2926 Requirements (空间最远曼哈顿距离)
- HDOJ 4666 Hyperspace 最大曼哈顿距离
- cocos2d-x学习:CCSprite总结
- 'WSGIRequest' object has no attribute 'raw_post_data'
- hdu 2553 N皇后问题 解题报告
- GOOGLE PageRank 算法分析
- linux 开机LOGO修改
- 【最大曼哈顿距离】POJ2926 Requirements
- 【Cost】全表扫描时cost的计算(非工作量模式下-noworkload)
- Kettle(PentahoDataIntegration)安装Hadoop-2.2.0插件
- if语句的三种格式及其注意事项
- 递归调用示例
- 服务器编程入门(8)多进程编程
- MFC播放声音和录音的实现(三)
- 十种排序算法总结(冒泡、插入、选择、希尔、归并、堆、快速,计数,桶,基数)
- 23种设计模式(2):工厂方法模式