http://acm.hdu.edu.cn/showproblem.php?pid=4666

动态求最远曼哈顿距离 线段树维护区间最值就好 但是k维空间会有2^k种情况 只能离线每一种情况 最后么一个位置在所有情况中取最值 如果在线求的话 只能建2^m棵线段树 浪费太多没有必要的空间

#include <bits/stdc++.h>
using namespace std;
const int N=0x3f3f3f3f;struct node0
{int tp;int id;int x[5];
};struct node1
{int l;int r;int flag;int maxx;int minn;
};node0 order[60010];
node1 tree[240010];
int pre[50],ans[60010];
int n,m;void init()
{int i;pre[0]=1;for(i=1;i<=30;i++) pre[i]=2*pre[i-1];
}void pushup(int cur)
{tree[cur].flag=tree[2*cur].flag|tree[2*cur].flag;tree[cur].maxx=max(tree[2*cur].maxx,tree[2*cur+1].maxx);tree[cur].minn=min(tree[2*cur].minn,tree[2*cur+1].minn);
}void build(int l,int r,int cur)
{int m;tree[cur].l=l;tree[cur].r=r;tree[cur].flag=0;tree[cur].maxx=-N;tree[cur].minn=N;if(l==r) return;m=(l+r)/2;build(l,m,2*cur);build(m+1,r,2*cur+1);
}void updateI(int tar,int val,int cur)
{if(tree[cur].l==tree[cur].r){tree[cur].flag=1;tree[cur].maxx=val;tree[cur].minn=val;return;}if(tar<=tree[2*cur].r) updateI(tar,val,2*cur);else updateI(tar,val,2*cur+1);pushup(cur);
}void updateII(int tar,int cur)
{if(tree[cur].l==tree[cur].r){tree[cur].flag=0;tree[cur].maxx=-N;tree[cur].minn=N;return;}if(tar<=tree[2*cur].r) updateII(tar,2*cur);else updateII(tar,2*cur+1);pushup(cur);
}int main()
{int i,j,k,val;init();while(scanf("%d%d",&n,&m)!=EOF){for(i=1;i<=n;i++){scanf("%d",&order[i].tp);if(order[i].tp==0) for(j=0;j<m;j++) scanf("%d",&order[i].x[j]);else scanf("%d",&order[i].id);}memset(ans,0,sizeof(ans));for(j=0;j<pre[m];j++){build(1,n,1);for(i=1;i<=n;i++){if(order[i].tp==0){val=0;for(k=0;k<m;k++){if(j&pre[k]) val+=order[i].x[k];else val-=order[i].x[k];}updateI(i,val,1);}else updateII(order[i].id,1);ans[i]=max(ans[i],tree[1].maxx-tree[1].minn);}}for(i=1;i<=n;i++) printf("%d\n",ans[i]);}return 0;
}

Hyperspace HDU - 4666相关推荐

  1. hdu 4666 Hyperspace

    点击打开hdu 4666 思路:n维空间计算最远的曼哈顿距离 分析: 1 这一题和poj2926很像,但是poj那题是静态的而这边则是动态的,对于静态的话我们知道只要去求出2^n状态下的最大值和最小值 ...

  2. HDU 4666 Hyperspace(优先队列)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4666 题意:两种操作:(1)增加一个点到序列中:(2)删除序列中的某个点.在每次操作之后,输出序列中曼 ...

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

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

  4. HDU 4666 Hyperspace【最远曼哈顿距离+优先队列】

    这个题是动态的求最远曼哈顿距离.做法和POJ 2926 Requirements一样,都是通过二进制枚举符号的情况. 每插入一个节点都要询问最大值和最小值,因此用一个优先队列或者堆维护就可以了. #i ...

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

    POJ 2926加强版,使用set处理,, //#pragma comment(linker, "/STACK:102400000,102400000") #include< ...

  6. 最近/最远曼哈顿距离

    本文都是以二维举例的,实际上变成更多维也是差不多的情况啦,只是每个点的状态多了一些而已. 最远曼哈顿距离: 假设有两个点A(xi,yi),B(xj,yj) 则两点之间的曼哈顿距离为 |xi-xj|+| ...

  7. 4666 Hyperspace stl

    当时自己做的时候没有这么想,想的是每个象限去找一个无穷值来作为比较点.但是很麻烦 代码: 1 #include <stdio.h> 2 #include <string.h> ...

  8. 【水题】 HDOJ 4666 Hyperspace

    2009年国家集训队武森论文 最远哈密顿距离...论文题. #include <iostream> #include <queue> #include <stack> ...

  9. HDU 4389 - X mod f(x)

    题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4389 2012多校,第9场,1010 . 问题是,询问区间内 存在多少个 哈沙德数(Harshad ...

最新文章

  1. java 文件下载 【学习记录】
  2. UVa12604 Caesar Cipher(kmp)
  3. nginx利用proxy_cache来缓存文件
  4. python优点是代码库支持、灵活_C++和Python混合编程的利器
  5. JavaScript数据结构学习笔记(封装二叉树)
  6. System Repair Engineer (SREng) 2.5 常用操作
  7. 微信服务通知消息找回_抖音回应无法用微信登录疑:不清楚是否是人为因素
  8. Unity制作历史记录气泡
  9. 高红梅 第一章 海明威自我身份意识的形成 第一节 文化氛围与自我身份意识的生成
  10. 软考高级 真题 2015年上半年 信息系统项目管理师 综合知识
  11. 数据嗨客 | 第6期:不平衡数据处理
  12. initialization of _pywrap_tensorflow raised unreported exception 解决方法
  13. IOS APP 公司主体变更的转让流程
  14. C# 判断有向图是否存在环
  15. 【Leetcode】[190] 颠倒二进制位
  16. Win10 误删winsock注册表修复。 winsock.reg
  17. 罗克韦尔自动化2018年自动化博览会开始接受注册
  18. android 屏幕亮度广播,Android调节屏幕亮度实现代码
  19. 山海演武传·黄道·第一卷 雏龙惊蛰 第五章 蛮族少女与白泽
  20. TCP/IP协议模型详解四ICMP、ICMPv6

热门文章

  1. odbc数据 mysql数据库_odbc连接数据库
  2. 轩小陌的Python笔记-day07 数据类型
  3. Windows route命令添加删除修改路由信息
  4. insert into 的两种表复制插入方法
  5. 未明学院:咨询/投行/四大/券商/私募,上交学姐传授商科实习秘籍!
  6. IP冲突导致访问不了请求
  7. proxifier使用
  8. three.js通过CubeTexture加载环境贴图,和RGBELoader加载器加载hdr环境贴图
  9. /tmp/ccY3hmyr.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
  10. 2022年11月23日——jQuery——T1(基础选择器与表单选择器)