hdu-4666 Hyperspace
题目来源: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相关推荐
- hdu 4666 Hyperspace
点击打开hdu 4666 思路:n维空间计算最远的曼哈顿距离 分析: 1 这一题和poj2926很像,但是poj那题是静态的而这边则是动态的,对于静态的话我们知道只要去求出2^n状态下的最大值和最小值 ...
- HDU 4666 Hyperspace(优先队列)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4666 题意:两种操作:(1)增加一个点到序列中:(2)删除序列中的某个点.在每次操作之后,输出序列中曼 ...
- [HDU 4666]Hyperspace[最远曼哈顿距离][STL]
题意: 许多 k 维点, 求这些点之间的最远曼哈顿距离. 并且有 q 次操作, 插入一个点或者删除一个点. 每次操作之后均输出结果. 思路: 用"疑似绝对值"的思想, 维护每种状态 ...
- HDU 4666 Hyperspace【最远曼哈顿距离+优先队列】
这个题是动态的求最远曼哈顿距离.做法和POJ 2926 Requirements一样,都是通过二进制枚举符号的情况. 每插入一个节点都要询问最大值和最小值,因此用一个优先队列或者堆维护就可以了. #i ...
- HDU 4666 Hyperspace(最长曼哈顿距离)
POJ 2926加强版,使用set处理,, //#pragma comment(linker, "/STACK:102400000,102400000") #include< ...
- Hyperspace HDU - 4666
http://acm.hdu.edu.cn/showproblem.php?pid=4666 动态求最远曼哈顿距离 线段树维护区间最值就好 但是k维空间会有2^k种情况 只能离线每一种情况 最后么一个 ...
- 4666 Hyperspace stl
当时自己做的时候没有这么想,想的是每个象限去找一个无穷值来作为比较点.但是很麻烦 代码: 1 #include <stdio.h> 2 #include <string.h> ...
- 【水题】 HDOJ 4666 Hyperspace
2009年国家集训队武森论文 最远哈密顿距离...论文题. #include <iostream> #include <queue> #include <stack> ...
- 最近/最远曼哈顿距离
本文都是以二维举例的,实际上变成更多维也是差不多的情况啦,只是每个点的状态多了一些而已. 最远曼哈顿距离: 假设有两个点A(xi,yi),B(xj,yj) 则两点之间的曼哈顿距离为 |xi-xj|+| ...
- HDU 4389 - X mod f(x)
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4389 2012多校,第9场,1010 . 问题是,询问区间内 存在多少个 哈沙德数(Harshad ...
最新文章
- tcpdump抓包并保存到远程服务器
- 为什么你不应该自行更新 Drupal 网站?
- 手把手教你使用Flex 3——《Flex 3程序设计》
- 51Nod2353 排队问题
- SAP Spartacus基于travis的持续集成
- android中拖动文字实现功能,Android:图片中叠加文字,支持拖动改变位置
- java sftp mget_总结三种Shell脚本编程中避免SFTP输入密码的方法
- 【华为云技术分享】Linux内核的分布式编译(1)
- 怎样使计算机屏幕看着不累,电脑族的显示器如何摆最不累
- Docker 集群环境实现的新方式
- Django安装与开发虚拟环境搭建01
- 左移寄存器vhdl_用VHDL实现的通用循环移位寄存器
- JDK安装与环境变量配置(WIN7)
- java messagedigest_Java MessageDigest toString()用法及代码示例
- 计算机管理员被停用,命令提示符已被系统管理员停用,详细教您命令提示符已被系统管理员停用怎么办...
- 猿创征文 第二季| #「笔耕不辍」--生命不息,写作不止#
- 一零二、Vue中自定义emoji表情包
- scratch躲避球
- Vue2 + ant design vue1.7.8版本 Table组件 手动拖拽、可伸缩列功能
- 简单使用Linux工业平板(一)