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: 去掉绝对值 , 设 ...
随机推荐
- 【转载】VC操作剪切板
1.在剪切板上放置数据 if(OpenClipboard()) //打开剪切板{ EmptyClipboard(); //清空剪切板 CString str; //从控件 ...
- BZOJ 1029: [JSOI2007]建筑抢修 优先队列
1029: [JSOI2007]建筑抢修 Time Limit: 4 Sec Memory Limit: 162 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...
- vue中路由返回上一个页面,恢复到上一个页面的滚动位置
第一步:路由文件的配置(对你所需要的vue文件进行保存缓存标志的添加) import Vue from 'vue' import Router from 'vue-router' import Hel ...
- sqlserver存储过程循环写法
用游标,和WHILE可以遍历您的查询中的每一条记录并将要求的字段传给变量进行相应的处理==================DECLARE @A1 VARCHAR(10),@A2 VARCHAR(10) ...
- linux内核 asmlinkage宏
http://blog.chinaunix.net/uid-7390305-id-2057287.html
- [Javascript]XMLHttpRequest对象实现下载进度条
摘要 可以通过设置一个XMLHttpRequest对象的responseType属性来改变一个从服务器上返回的响应的数据类型.可用的属性值为空字符串 (默认), "arraybuffer&q ...
- andriod 获得MP4时长
//获得MP4时长 private int getTimeLong(String videoPath) { MediaMetadataRetriever retr = new MediaMetadat ...
- MyEclipse Web项目调试
1.发布项目 2.启动服务 服务有两种启动方式,Run Server和Debug Server Run Server是运行模式,Debug Server是调试模式 使用Debug Server模式启动 ...
- 【docker-compose】使用docker-compose部署运行spring boot+mysql 【处理容器的时区问题】【详解】【福利:使用docker-compose构建 wordpress+mysql】
==================================================================================================== ...
- [翻译] LASIImageView - 显示进度指示并异步下载图片
LASIImageView – download image with progress indicator 翻译原网址:http://lukagabric.com/lasiimageview-d ...