当时自己做的时候没有这么想,想的是每个象限去找一个无穷值来作为比较点。但是很麻烦

代码:

 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相关推荐

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

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

  2. hdu 4666 Hyperspace

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

  3. HDU 4666 Hyperspace(优先队列)

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

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

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

  5. 【水题】 HDOJ 4666 Hyperspace

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

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

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

  7. Hyperspace HDU - 4666

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

  8. STL库(C++11)提供的异步执行方法的方式

    在进行并发编程的时候难免会遇到异步执行时候,现代C++标准库提供了几种异步执行的方式,本文收集整理了一下,以备将来翻阅. Thread方式 Thread 是STL提供的一种快捷创建线程的方式,极大方便 ...

  9. C++ 笔记(24)— STL map 类(map实例化、插入、查找、删除)

    1. STL 映射类简介 map 和 multimap 是键-值对容器,支持根据键进行查找,区别在于,后者能够存储重复的键,而前者只能存储唯一的键. 为了实现快速查找, STL map 和 multi ...

最新文章

  1. Missing space before value for key ‘routes‘ key-spacing
  2. java swing 图片切换_使用Javaswing自定义图片作为按钮(原创)
  3. 后端系统开发之异常情况处理
  4. 移动端适配 rem
  5. python爬虫lxml xpath测试
  6. 计算机网络 教学大纲 谢希仁,《计算机网络》教学大纲.doc
  7. java 实现Active Object思想
  8. 正则表达式及常用大全
  9. 关于知云文献翻译出现乱码
  10. uni-app:搜索关键词并高亮显示,可重复显示
  11. \xe8\x83\xa5\xe5\xb8\x85\xe6\x9d\xb0转中文
  12. Android源码目录结构
  13. 关于奋斗的150条中国名人名言
  14. 微信浏览器字体调整 PHP,h5禁止微信内置浏览器调整字体大小
  15. asp毕业设计——基于vb+VB.NET+SQL Server的图书馆管理信息系统设计与实现(毕业论文+程序源码)——图书馆管理信息系统
  16. rt2870 linux,『求助』RaLink雷凌RT2870 无线网卡怎样安装驱动?
  17. isnan函数返回值c语言,C++ std::isnan等函数的使用
  18. java手机qq通用版2012_javaqq通用版?qq2012java通用版下载?qqjava通用版下载?手机qq2011java通用版...
  19. CentOS虚拟机通过主机WIFI上网
  20. 银行排队(Bank)

热门文章

  1. python实现logistic增长模型
  2. Nodejs基础:路径处理模块path总结
  3. 重构-使代码更简洁优美:实际经验之谈(提供一技巧,让你省掉N多代码)
  4. 迷你MVVM框架 avalonjs 0.71发布
  5. 10月25日-10月29日一周宣讲会安排
  6. Java中split函数的用法及使用示例
  7. IT优秀书籍收集下载
  8. php swoole扩展,php如何安装swoole扩展
  9. 【超参数寻优】交叉验证(Cross Validation)超参数寻优的python实现:多参数寻优
  10. NMS 原理和c++实现,已测试通过