hdu4666 最远曼哈顿距离
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4666
#include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
#include <queue>
#include <set>
using namespace std;
const int maxn = ; struct MaxHeap{
int d; //k维的各种加或减的和;
int p; //每个坐标和所属的标号
MaxHeap(int d=,int p=):d(d),p(p) {}
bool operator < (const MaxHeap& r) const{
return d < r.d;
}
};
struct MinHeap{
int d;
int p;
MinHeap(int d=,int p=):d(d),p(p) {}
bool operator < (const MinHeap& r) const{
return d > r.d;
}
};
priority_queue<MaxHeap> Max[]; //存储1<<k种坐标组合情况;
priority_queue<MinHeap> Min[];
int q,k;
bool del[maxn]; //标记别删除的点; int main()
{
//freopen("E:\\acm\\input.txt","r",stdin);
while(cin>>q>>k){
memset(del,,sizeof(del));
for(int i=;i<;i++){
while(!Max[i].empty()) Max[i].pop();
while(!Min[i].empty()) Min[i].pop();
}
int a[],od;
MaxHeap temp1; MinHeap temp2;
for(int m=;m<=q;m++){
scanf("%d",&od);
if(od == ){
for(int i=;i<k;i++) scanf("%d",&a[i]);
for(int i=;i<(<<k);i++){
int add = ;
for(int j=;j<k;j++)
if(<<j & i) add += a[j];
else add -= a[j];
temp1 = MaxHeap(add,m);
temp2 = MinHeap(add,m);
Max[i].push(temp1);
Min[i].push(temp2);
}
}
else{
int id;
scanf("%d",&id);
del[id] = true;
}
/***** 统计答案 ******/
int ans = ;
for(int i=;i<(<<k);i++){
if(!Max[i].empty()) temp1 = Max[i].top(); //下面从最大堆中取没被删除的最大;
while(!Max[i].empty() && del[temp1.p]){
Max[i].pop();
temp1 = Max[i].top();
}
if( Max[i].empty()){ //最大堆为空,没temp1没取到元素;直接退出。
ans = ; break;
}
if(!Min[i].empty()) temp2 = Min[i].top(); //下面从最小堆中取没被删除的最小;
while(!Min[i].empty() && del[temp2.p]){
Min[i].pop();
temp2 = Min[i].top();
}
if( Min[i].empty()){ //最小堆为空,没temp2没取到元素;
ans = ; break;
}
ans = max(ans,temp1.d-temp2.d);
}
printf("%d\n",ans);
}
}
}
hdu4666 最远曼哈顿距离的更多相关文章
- 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 ...
- POJ-2926 Requirements 最远曼哈顿距离
题目链接:http://poj.org/problem?id=2926 题意:求5维空间的点集中的最远曼哈顿距离.. 降维处理,推荐2009武森<浅谈信息学竞赛中的“0”和“1”>以及&l ...
- [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: 去掉绝对值 , 设 ...
随机推荐
- A除以B_2
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入格式: 输入在1行中依次给出A和B,中间以1空格分隔. 输出格 ...
- C#和asp.net中链接数据库中 参数的几种传递方法
#region 参数传递方法第一种 //参数设置方法(第一种) //SqlParameter sp = new SqlParameter("@Name", str_Name); / ...
- 解决Xcode7多个模拟器的方法
xcode模拟器都这样显示,没办法判断是哪个系统,解决办法是 1.关闭xcode 2.终端输入 sudo killall -9 com.apple.CoreSimulator.CoreSimulato ...
- Xcode编译项目出现访问private key提示框
原因: 在编译时Xcode进行codesign时需要访问"private key"时没有权限,然后让询问是否允许,有三个选项,全部允许.否绝.允许,一次弹出4个(我遇到的) 遇到问 ...
- java.math.BigDecimal类
BigDecimal类用于高精度计算.一般的float型和Double型数据只可以用来做科学计算或者是工程计算,由于在商业计算中,要求的数字精度比较高,所以要用到java.math.BigDecima ...
- dedecms 修改标题长度可以修改数据库
数据表为dede__archives 字段为title 首先要在 a.系统->系统基本参数->其它选项->文章标题长度 b.系统->SQL命令行工具 alter table # ...
- PHP数据学习-二维数组【3】
<?php // $project = array( // array("bai",12,23.0), // array("zeng",34,12.0), ...
- 安装search everything中文语言包
Everything 作为很多人的必备工具,特写这篇文章,一方面让想使用国外优秀软件的英语小白有一段过渡期,另一方面也为自己整理下资料.当然,这个可不是不学好英语的正当理由. 步骤: 1. 下载好se ...
- 转:SQL Case when 的使用方法
Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' EN ...
- 优化MYSQL FILESORT
用Explain分析SQL语句的时候,经常发现有的语句在Extra列会出现Using filesort,根据mysql官方文档对他的描述: 引用 MySQL must do an extra pass ...