4666 Hyperspace stl
当时自己做的时候没有这么想,想的是每个象限去找一个无穷值来作为比较点。但是很麻烦
代码:
1 #include <stdio.h> 2 #include <string.h> 3 #include <iostream> 4 #include <algorithm> 5 #include <stdlib.h> 6 #include <vector> 7 #include <set> 8 #include <queue> 9 #include <stack> 10 #define loop(s,i,n) for(i = s;i < n;i++) 11 #define cl(a,b) memset(a,b,sizeof(a)) 12 using namespace std; 13 int a[60050][10]; 14 int main() 15 { 16 int n,k; 17 while(~scanf("%d %d",&n,&k)) 18 { 19 int i,o,j; 20 multiset<int>mst[50]; 21 for(i = 1;i <= n;i++) 22 { 23 scanf("%d",&o); 24 int maxans = 0; 25 if(o == 0) 26 { 27 for(j = 0;j < k;j++) 28 { 29 scanf("%d",&a[i][j]); 30 } 31 32 for(j = 0;j < (1<<(k));j++) 33 { 34 int ii,sum; 35 for(ii = 0,sum = 0;ii < k;ii++) 36 { 37 if(j & (1<<ii)) 38 sum += a[i][ii]; 39 else 40 sum -= a[i][ii]; 41 } 42 mst[j].insert(sum); 43 } 44 } 45 else 46 { 47 int del; 48 scanf("%d",&del); 49 for(j = 0;j < (1<<(k));j++) 50 { 51 int sum = 0; 52 for(int ii = 0;ii < k;ii++) 53 { 54 if(j & (1<<ii)) 55 sum += a[del][ii]; 56 else 57 sum -= a[del][ii]; 58 } 59 multiset<int>::iterator it; 60 it = mst[j].find(sum); 61 62 mst[j].erase(it); 63 } 64 } 65 maxans = 0; 66 for(j = 0;j < (1 << (k));j++) 67 { 68 multiset<int>::iterator it1; 69 multiset<int>::iterator it2; 70 if(mst[j].size() > 0) 71 { 72 it1 = mst[j].begin(); 73 it2 = mst[j].end(); 74 it2--; 75 maxans = max(maxans,*it2-*it1); 76 } 77 } 78 cout<<maxans<<endl; 79 80 } 81 } 82 return 0; 83 }
View Code
转载于:https://www.cnblogs.com/0803yijia/p/3257301.html
4666 Hyperspace stl相关推荐
- [HDU 4666]Hyperspace[最远曼哈顿距离][STL]
题意: 许多 k 维点, 求这些点之间的最远曼哈顿距离. 并且有 q 次操作, 插入一个点或者删除一个点. 每次操作之后均输出结果. 思路: 用"疑似绝对值"的思想, 维护每种状态 ...
- 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【最远曼哈顿距离+优先队列】
这个题是动态的求最远曼哈顿距离.做法和POJ 2926 Requirements一样,都是通过二进制枚举符号的情况. 每插入一个节点都要询问最大值和最小值,因此用一个优先队列或者堆维护就可以了. #i ...
- 【水题】 HDOJ 4666 Hyperspace
2009年国家集训队武森论文 最远哈密顿距离...论文题. #include <iostream> #include <queue> #include <stack> ...
- 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种情况 只能离线每一种情况 最后么一个 ...
- STL库(C++11)提供的异步执行方法的方式
在进行并发编程的时候难免会遇到异步执行时候,现代C++标准库提供了几种异步执行的方式,本文收集整理了一下,以备将来翻阅. Thread方式 Thread 是STL提供的一种快捷创建线程的方式,极大方便 ...
- C++ 笔记(24)— STL map 类(map实例化、插入、查找、删除)
1. STL 映射类简介 map 和 multimap 是键-值对容器,支持根据键进行查找,区别在于,后者能够存储重复的键,而前者只能存储唯一的键. 为了实现快速查找, STL map 和 multi ...
最新文章
- Missing space before value for key ‘routes‘ key-spacing
- java swing 图片切换_使用Javaswing自定义图片作为按钮(原创)
- 后端系统开发之异常情况处理
- 移动端适配 rem
- python爬虫lxml xpath测试
- 计算机网络 教学大纲 谢希仁,《计算机网络》教学大纲.doc
- java 实现Active Object思想
- 正则表达式及常用大全
- 关于知云文献翻译出现乱码
- uni-app:搜索关键词并高亮显示,可重复显示
- \xe8\x83\xa5\xe5\xb8\x85\xe6\x9d\xb0转中文
- Android源码目录结构
- 关于奋斗的150条中国名人名言
- 微信浏览器字体调整 PHP,h5禁止微信内置浏览器调整字体大小
- asp毕业设计——基于vb+VB.NET+SQL Server的图书馆管理信息系统设计与实现(毕业论文+程序源码)——图书馆管理信息系统
- rt2870 linux,『求助』RaLink雷凌RT2870 无线网卡怎样安装驱动?
- isnan函数返回值c语言,C++ std::isnan等函数的使用
- java手机qq通用版2012_javaqq通用版?qq2012java通用版下载?qqjava通用版下载?手机qq2011java通用版...
- CentOS虚拟机通过主机WIFI上网
- 银行排队(Bank)