Requirements

好吧,这题我实在想不到什么优化的方法,看了看讨论区,顺便膜拜了一下大牛们,真是神!

题意:一种属性有5种特征,每种特征有一定的值来表示,定义两个属性间非相似度为对应特征值之差的绝对值的和。求非相似度最大的值。

思路:数据1e5,不用想着瞎暴力了。只有5种特征值,我们可以把绝对值符号去掉于是每种属性有32种情况,每种情况对应着n个属性找出其中的最大最小值再取最大值即可。

const int INF=0x3f3f3f3f;
const int N=1e5+7;
struct node
{
double a,b,c,d,e;
} s[N];
int main()
{
int n;
scanf("%d",&n);
for(int i=0; i<n; i++)
scanf("%lf%lf%lf%lf%lf",&s[i].a,&s[i].b,&s[i].c,&s[i].d,&s[i].e);
double tp2=0;
for(int i1=1; i1<=2; i1++)
for(int i2=1; i2<=2; i2++)
for(int i3=1; i3<=2; i3++)
for(int i4=1; i4<=2; i4++)
for(int i5=1; i5<=2; i5++)
{
double ma=-INF,mi=INF;//注意初始值范围要尽量大点。
for(int i=0; i<n; i++)此循环必须放在最里层,具体请看下面。
{
double tp1=s[i].a*pow(-1,i1)+s[i].b*pow(-1,i2)+s[i].c*pow(-1,i3)+s[i].d*pow(-1,i4)+s[i].e*pow(-1,i5);
if(tp1<mi) mi=tp1;
if(tp1>ma) ma=tp1;
}
tp2=max(tp2,ma-mi);
}
printf("%.2f\n",tp2);//讨论区有大牛因为输出.2lf\n而跪。。。
}

不知看客注意到了没有,上述说的是:每种情况对应着n种属性,所以最里层循环是枚举n种属性。而不是每种属性对应着32种情况。说实话博主差点栽在这里。是因为每种情况都要找出n个属性对应这种情况的最大最小值,最后再取最大值。而如果每种属性都枚举32种情况找出的只是单个属性的最大最小值,可以试着把最里层循环放在最外层,第一组样例就可以解释为什么了。

细节决定成败啊!!

POJ2926-Requirements,曼哈顿距离。去掉绝对值符号暴力枚举所有情况,神薙!的更多相关文章

  1. 暴力三维树状数组求曼哈顿距离求最值——牛客多校第八场D

    涉及的知识点挺多,但是大多是套路 1.求曼哈顿距离的最值一般对所有情况进行讨论 2.三维树状数组用来求前缀最大值 /* 有一个三维坐标系(x,y,z),取值范围为[1,n],[1,m],[1,h],有 ...

  2. poj2926Requirements (曼哈顿距离)

    Description An undergraduate student, realizing that he needs to do research to improve his chances ...

  3. Codeforces 491B. New York Hotel 最远曼哈顿距离

    最远曼哈顿距离有两个性质: 1: 对每一个点(x,y)  分别计算  +x+y , -x+y , x-y , -x-y 然后统计每种组合的最大值就能够了, 不会对结果产生影响 2: 去掉绝对值 , 设 ...

  4. BZOJ 3170 松鼠聚会(切比雪夫距离转曼哈顿距离)

    题意 有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1.现在N个松鼠要走到一个松鼠家去,求走过的最短距离. 思路 题目 ...

  5. POJ-2926 Requirements 最远曼哈顿距离

    题目链接:http://poj.org/problem?id=2926 题意:求5维空间的点集中的最远曼哈顿距离.. 降维处理,推荐2009武森<浅谈信息学竞赛中的“0”和“1”>以及&l ...

  6. poj 2926:Requirements(最远曼哈顿距离,入门题)

    Requirements Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 3908   Accepted: 1318 Desc ...

  7. nyoj 7 街区最短路径问题 (曼哈顿距离(出租车几何) or 暴力)

    街区最短路径问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间 ...

  8. hdu 4666:Hyperspace(最远曼哈顿距离 + STL使用)

    Hyperspace Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Tota ...

  9. HDU 4666 Hyperspace (最远曼哈顿距离)

    Hyperspace Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Tota ...

随机推荐

  1. ES相关概念理解

    Elasticsearch特点:分布式,高性能,高可用,高伸缩的搜索和分析: 1)可作为一个大型分布式集群,处理PB级别的数据,服务大型公司,亦可运行在少数或单台设备上服务小型公司 分布式的特性: E ...

  2. solr 统计中stats的一般用法

    //统计数据 根据查询条件 public String getStats(String ipName) { JSONObject obj; JSONArray pageArray = new JSON ...

  3. 【Laravel】 常用命令

    自动创建项目 laravel new || laravel new xxx || composer create-project --prefer-dist laravel/laravel blog ...

  4. AJPFX总结方法的特点

    它可以实现独立的功能; 必须定义在类里面; 它只有被调用才会执行; 它可以被重复使用; 方法结束后方法里的对象失去引用;   如何定义一个功能,并通过方法体现出来: ① 明确该功能运算后的结果.明确返 ...

  5. AJPFX总结内部类

    内部类:内部类的访问规则:1. 内部类可以直接访问外部类中的成员,包括私有   原因是内部类中持有了一个外部类的引用,格式:外部类.this2. 外部类要访问内部类,必须建立内部类对象访问格式:1.  ...

  6. AJPFX总结I/O流操作(二)

    FileWriter:该类没有特有的方法只有自己的构造函数.该类特点在于1,用于处理文本文件.2,该类中有默认的编码表,3,该类中有临时缓冲.构造函数:在写入流对象初始化时,必须要有一个存储数据的目的 ...

  7. poj3262 Protecting the Flowers

    思路: 简单贪心,每次选择性价比最高的. 实现: #include <iostream> #include <cstdio> #include <algorithm> ...

  8. iOS 随笔 允许所有不安全网络访问项目

    允许任意请求访问app   App Transport Security Settings -> Allow Arbitrary Loads  YES

  9. layout转Bitmap

    业务需求详细描述:最近产品说要在分享的商品图中添加一些其他图片和文字,然后拼接为一张图片,再分享到微信朋友圈,于是我就一脸懵逼了,但是没办法还是得做额! 然后整理了一下思路,主要有这么两条路线: 自己 ...

  10. 洛谷 P1011 车站

    题目描述 火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上.下车,但上.下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数保持为a人.从第3站起( ...