HDU4666+POJ2926【最远曼哈顿距离】
一开始就明白那个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【最远曼哈顿距离】的更多相关文章
- POJ-2926 Requirements 最远曼哈顿距离
题目链接:http://poj.org/problem?id=2926 题意:求5维空间的点集中的最远曼哈顿距离.. 降维处理,推荐2009武森<浅谈信息学竞赛中的“0”和“1”>以及&l ...
- hdu 4666:Hyperspace(最远曼哈顿距离 + STL使用)
Hyperspace Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Tota ...
- poj 2926:Requirements(最远曼哈顿距离,入门题)
Requirements Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 3908 Accepted: 1318 Desc ...
- [HDU 4666]Hyperspace[最远曼哈顿距离][STL]
题意: 许多 k 维点, 求这些点之间的最远曼哈顿距离. 并且有 q 次操作, 插入一个点或者删除一个点. 每次操作之后均输出结果. 思路: 用"疑似绝对值"的思想, 维护每种状态 ...
- HDU 4666 Hyperspace (最远曼哈顿距离)
Hyperspace Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Tota ...
- HDU 4666 最远曼哈顿距离
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4666 关于最远曼哈顿距离的介绍: http://blog.csdn.net/taozifish/ar ...
- HDU 4666 Hyperspace (2013多校7 1001题 最远曼哈顿距离)
Hyperspace Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Tota ...
- 2018 Multi-University Training Contest 10 CSGO(HDU - 6435)(最远曼哈顿距离)
有 n 种主武器,m 种副武器.每种武器有一个基础分数k种属性值 X[i] . 选出一种主武器 mw 和一种副武器 sw,使得两种武器的分数和 + 每个属性的差值尽量大.(参考下面的式子) 多维的最远 ...
- Codeforces 491B. New York Hotel 最远曼哈顿距离
最远曼哈顿距离有两个性质: 1: 对每一个点(x,y) 分别计算 +x+y , -x+y , x-y , -x-y 然后统计每种组合的最大值就能够了, 不会对结果产生影响 2: 去掉绝对值 , 设 ...
随机推荐
- python开发_tkinter_获取文本框内容_给文本框添加键盘输入事件
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐
在了解python中的tkinter模块的时候,你需要了解一些tkinter的相关知识 下面是python的API文档中的一个简单例子: import tkinter as tk class Appl ...
- redis缓存穿透解决办法--排它锁
- MySQL多表联查之ThinkPHP中的实现
创建两个表如图: sp_user表: sp_dept表: 目的:通过sp_user的dept_id查询所属部门即sp_dept中的name. 原生sq方法一:select t1.*,t2.name a ...
- POJ 3041(最小点覆盖)
题意: 假如你如今正处在一个N*N的矩阵中,这个矩阵里面有K个障碍物,你拥有一把武器,一发弹药一次能消灭一行或一列的障碍物,求最小的弹药消灭所有障碍物 输入为: N K 接下来有K行,每行包括 ...
- cocos2d-x 3.0 将cpp-tests编译成Android版本号APK文件
cmd模式 进入到 E:\cocos2d-x-3.0rc1\cocos2d-x-3.0rc1\build 输入命令 android list targets 在输入: android-build.py ...
- jsonConfig使用方法
1.先编写jsonConfig的初始化代码 private JsonConfig jsonConfig; public action构造方法() { jsonConfig = new JsonConf ...
- Android布局优化之ViewStub、include、merge使用与源码分析
在开发中UI布局是我们都会遇到的问题,随着UI越来越多,布局的重复性.复杂度也会随之增长.Android官方给了几个优化的方法,但是网络上的资料基本上都是对官方资料的翻译,这些资料都特别的简单,经常会 ...
- 读书笔记之:C语言深度剖析
读书笔记之:C语言深度剖析 <C 语言深度解剖>这本书是一本“解开程序员面试笔试的秘密”的好书.作者陈正冲老师提出“以含金量勇敢挑战国内外同类书籍”,确实,这本书中的知识点都是一些在面试中 ...
- cout的输出格式初探3
#include <iostream> #include <iomanip> using namespace std; int main() { double f=2.0/3. ...