一开始就明白那个N*1《k的算法了,

可无奈删除操作耗时还是太多,最后学习了STL set,map相应的用法,方便好多。

STL真的是一个好工具

#include<iostream>
#include<cstdio>
#include<map>
#include<set>
#include<vector>
#include<cstring>
using namespace std;
multiset<int> a[60005];
int x[60005][6];
int main()
{
int n,k,op,num;
while(scanf("%d%d",&n,&k)!=EOF)
{
for(int i=0;i<1<<k;i++)
a[i].clear();
for(int i=1;i<=n;i++)
{
scanf("%d",&op);
if(op==0)
{
for(int j=0;j<k;j++)
scanf("%d",&x[i][j]);
for(int j=0;j<1<<k;j++)
{
int s=0;
for(int q=0;q<k;q++)
{
if(j&1<<q) s+=x[i][q];
else s-=x[i][q];
}
a[j].insert(s);
}
}
else
{
scanf("%d",&num);
for(int j=0;j<1<<k;j++)
{
int s=0;
for(int q=0;q<k;q++)
{
if(j&1<<q) s+=x[num][q];
else s-=x[num][q];
}
multiset<int>::iterator sum=a[j].find(s);
a[j].erase(sum);
}
}
int ans=-100000000;
for(int j=0;j<1<<k;j++)
{
multiset<int>::iterator t=a[j].end();
t--;
int t1=(*t);
t=a[j].begin();
int t2=(*t);
ans=max(ans,t1-t2);
}
printf("%d\n",ans);
}
}
return 0;
}

接下来是POJ2926这道题用上面的方法奇葩的是G++WA,C++TLE,,无语中。。。

把multiset去了稍微改一下就过了,,囧,,,,

#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
#include<set>
#define inf 999999999
using namespace std;
double x[100005][6];
double a[1<<5+1][2];
int main()
{
int n;
scanf("%d",&n);
{
for(int i=0;i<1<<5;i++)
{
a[i][0]=-inf;
a[i][1]=inf;
}
for(int qq=1;qq<=n;qq++)
{
for(int j=0;j<5;j++)
scanf("%lf",&x[qq][j]);
for(int i=0;i<(1<<5);i++)
{
double sum=0;
for(int j=0;j<5;j++)
{
if(i&(1<<j)) sum+=x[qq][j];
else sum-=x[qq][j];
}
if(sum>=a[i][0])
a[i][0]=sum;
if(sum<=a[i][1])
a[i][1]=sum;//是所有数的相减。。
}
}
double ans=-inf;
for(int i=0;i<(1<<5);i++)
{
// printf("%.2lf %.2lf\n",a[i][0],a[i][1]);
double temp=a[i][0]-a[i][1];
ans=max(ans,temp);
}
printf("%.2lf\n",ans);
}
return 0;
}

HDU4666+POJ2926【最远曼哈顿距离】的更多相关文章

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

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

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

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

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

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

  4. [HDU 4666]Hyperspace[最远曼哈顿距离][STL]

    题意: 许多 k 维点, 求这些点之间的最远曼哈顿距离. 并且有 q 次操作, 插入一个点或者删除一个点. 每次操作之后均输出结果. 思路: 用"疑似绝对值"的思想, 维护每种状态 ...

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

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

  6. HDU 4666 最远曼哈顿距离

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4666 关于最远曼哈顿距离的介绍: http://blog.csdn.net/taozifish/ar ...

  7. HDU 4666 Hyperspace (2013多校7 1001题 最远曼哈顿距离)

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

  8. 2018 Multi-University Training Contest 10 CSGO(HDU - 6435)(最远曼哈顿距离)

    有 n 种主武器,m 种副武器.每种武器有一个基础分数k种属性值 X[i] . 选出一种主武器 mw 和一种副武器 sw,使得两种武器的分数和 + 每个属性的差值尽量大.(参考下面的式子) 多维的最远 ...

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

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

随机推荐

  1. window.open如何返回值给父窗口

    父窗口代码 function showMyWindowNew() { var iTop = (window.screen.availHeight - 30 - 450) / 2; //获得窗口的水平位 ...

  2. IEEE Bigger系列题解

    Bigger系列题解 Bigger Python 坑点在于要高精度以及表达式求值,用java写可以很容易避免高精度问题 然后这道题就可以AC了 代码 import java.io.*; import ...

  3. Python编程练习题学习汇总

    实例一:数学计算 简述:这里有四个数字,分别是:1.2.3.4提问:能组成多少个互不相同且无重复数字的三位数?各是多少? Python解题思路分析:可填在百位.十位.个位的数字都是1.2.3.4.组成 ...

  4. SMACH专题(三)----几种State类型

    状态机提供了若干种状态,包括了Generic State,CBState,SimpleActionState (ROS),ServiceState (ROS),MonitorState (ROS).下 ...

  5. cocos2dx 3.0 中文 iconv 转换函数

    //#include <string> #pragma once #include "cocos2d.h"; #include "iconv\include\ ...

  6. Git_配置别名

    有没有经常敲错命令?比如git status?status这个单词真心不好记. 如果敲git st就表示git status那就简单多了,当然这种偷懒的办法我们是极力赞成的. 我们只需要敲一行命令,告 ...

  7. Digital Adjustment of DC-DC Converter Output Voltage in Portable Applications

    http://pdfserv.maximintegrated.com/en/an/AN818.pdf http://www.maximintegrated.com/app-notes/index.mv ...

  8. C#程序集系列09,程序集签名

    在"C#程序集系列08,设置程序集版本"中体验了为程序集设置版本,但对于程序集的安全性来说,还远远不够.本篇体验程序集的签名. □ 程序集的签名 →F盘as文件夹下有多个文件→在程 ...

  9. MVC实现多选下拉框

    借助Chosen Plugin可以实现多选下拉框. 选择多项: 设置选项数量,比如设置最多允许2个选项: 考虑到多选下拉<select multiple="multiple" ...

  10. 25LINQ拾遗及实例

      投影 □ 遍历数组索引,Select获取 int[] indexes = {0, 2}; string[] strs = {"a", "b", " ...