题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=4666

求k维的最远曼哈顿距离

没有初始化  最后wa了...

#include <cstdio>
#include <cstring>
#include <iostream>
#include <queue>
#include <functional>
#define MAXSIZE 60000+3
#define MAXTYPE ((1<<5)+3)
#define INF ((1<<31)-1)
using namespace std;
struct node1
{friend bool operator<(node1 n1, node1 n2){return n1.value < n2.value;}int                     value, point;
};
struct node2
{friend bool operator< (node2 n1, node2 n2){return n1.value > n2.value;}int                     value, point;
};
int       n, dem, flag, point[6], del, ans;
bool      exist[MAXSIZE];
int main()
{int       i, j, k, tmp, t, s;while (scanf("%d %d\n", &n, &dem) != EOF){ans = 0;priority_queue<node1>       maxx[MAXTYPE];  // 没有初始化  wa了  好囧priority_queue<node2>       minx[MAXTYPE];  //开的是全局变量... 弄进来就好了memset(exist, 0, sizeof(exist));tmp = 1<<dem;for (i = 1; i <= n; i++){scanf("%d", &flag);if (!flag){exist[i] = true;for (j = 1; j <= dem; j++) scanf("%d", &point[j]);for (j = 0; j < tmp; j++){t = j;s = 0;for(k = 1; k <= dem; k++){if(t & 1) s += point[k];else s-= point[k];t >>= 1;}node1 ttt;ttt.value = s;ttt.point = i;node2 qqq;qqq.value = s;qqq.point = i;maxx[j].push(ttt);minx[j].push(qqq);}}else{scanf("%d", &del);exist[del] = false;for (j = 0; j < tmp; j++){while (!exist[maxx[j].top().point]) maxx[j].pop();while (!exist[minx[j].top().point]) minx[j].pop();}}ans = maxx[0].top().value-minx[0].top().value;for (j = 1; j < tmp; j++){if (ans < maxx[j].top().value-minx[j].top().value)ans = maxx[j].top().value-minx[j].top().value;}printf("%d\n", ans);}}return 0;
}

hdu-4666 Hyperspace相关推荐

  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. Hyperspace HDU - 4666

    http://acm.hdu.edu.cn/showproblem.php?pid=4666 动态求最远曼哈顿距离 线段树维护区间最值就好 但是k维空间会有2^k种情况 只能离线每一种情况 最后么一个 ...

  7. 4666 Hyperspace stl

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

  8. 【水题】 HDOJ 4666 Hyperspace

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

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

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

  10. HDU 4389 - X mod f(x)

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

最新文章

  1. tcpdump抓包并保存到远程服务器
  2. 为什么你不应该自行更新 Drupal 网站?
  3. 手把手教你使用Flex 3——《Flex 3程序设计》
  4. 51Nod2353 排队问题
  5. SAP Spartacus基于travis的持续集成
  6. android中拖动文字实现功能,Android:图片中叠加文字,支持拖动改变位置
  7. java sftp mget_总结三种Shell脚本编程中避免SFTP输入密码的方法
  8. 【华为云技术分享】Linux内核的分布式编译(1)
  9. 怎样使计算机屏幕看着不累,电脑族的显示器如何摆最不累
  10. Docker 集群环境实现的新方式
  11. Django安装与开发虚拟环境搭建01
  12. 左移寄存器vhdl_用VHDL实现的通用循环移位寄存器
  13. JDK安装与环境变量配置(WIN7)
  14. java messagedigest_Java MessageDigest toString()用法及代码示例
  15. 计算机管理员被停用,命令提示符已被系统管理员停用,详细教您命令提示符已被系统管理员停用怎么办...
  16. 猿创征文 第二季| #「笔耕不辍」--生命不息,写作不止#
  17. 一零二、Vue中自定义emoji表情包
  18. scratch躲避球
  19. Vue2 + ant design vue1.7.8版本 Table组件 手动拖拽、可伸缩列功能
  20. 简单使用Linux工业平板(一)

热门文章

  1. 使用人工智能帮助开发中国家停止饥荒 美国三大科技巨擘将携手合作
  2. 第二周博客之小白懵了
  3. 网约车行业格局加速重构 T3出行如何打开增长新通道?
  4. java中void是什么意思_java中void什么意思
  5. 2017浅谈计算机类找工作
  6. 程序员:路人甲帮我找到月薪3万的工作!
  7. python爬虫学习23
  8. PHPStudy配置
  9. LeetCode-365.水壶问题 广度优先搜索、费蜀定理
  10. python自动登录教程_Python实现自动登录百度空间的方法,python自动登录