ZOJ - 3963

贪心做一下就好了

反正别用memset

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <sstream>
  4. #include <cstring>
  5. #include <map>
  6. #include <cctype>
  7. #include <set>
  8. #include <vector>
  9. #include <stack>
  10. #include <queue>
  11. #include <algorithm>
  12. #include <list>
  13. #include <cmath>
  14. #include <bitset>
  15. #define rap(i, a, n) for(int i=a; i<=n; i++)
  16. #define rep(i, a, n) for(int i=a; i<n; i++)
  17. #define lap(i, a, n) for(int i=n; i>=a; i--)
  18. #define lep(i, a, n) for(int i=n; i>a; i--)
  19. #define rd(a) scanf("%d", &a)
  20. #define rlld(a) scanf("%lld", &a)
  21. #define rc(a) scanf("%c", &a)
  22. #define rs(a) scanf("%s", a)
  23. #define rb(a) scanf("%lf", &a)
  24. #define rf(a) scanf("%f", &a)
  25. #define pd(a) printf("%d\n", a)
  26. #define plld(a) printf("%lld\n", a)
  27. #define pc(a) printf("%c\n", a)
  28. #define ps(a) printf("%s\n", a)
  29. #define MOD 2018
  30. #define LL long long
  31. #define ULL unsigned long long
  32. #define Pair pair<int, int>
  33. #define mem(a, b) memset(a, b, sizeof(a))
  34. #define _ ios_base::sync_with_stdio(0),cin.tie(0)
  35. //freopen("1.txt", "r", stdin);
  36. using namespace std;
  37. const int maxn = , INF = 0x7fffffff;
  38.  
  39. struct node
  40. {
  41. int w, id;
  42. node(int w, int id) : w(w), id(id) {}
  43. };
  44. bool operator < (node a, node b)
  45. {
  46. if(a.w == b.w) return a.id < b.id;
  47. return a.w < b.w;
  48. }
  49.  
  50. set<node> s;
  51. vector<int> G[maxn];
  52. int b[maxn];
  53. int ans[maxn];
  54.  
  55. int main()
  56. {
  57. int T;
  58. rd(T);
  59. while(T--)
  60. {
  61. s.clear();
  62. int n;
  63. rd(n);
  64. int a, cnt = ;
  65. for(int i = ; i <= n; i++) G[i].clear(), ans[i] = ;
  66. set<node>::iterator it;
  67. for(int i = ; i <= n; i++)
  68. {
  69. rd(a);
  70. it = s.lower_bound(node(-a, -i));
  71. if(it == s.end())
  72. {
  73. G[cnt].push_back(i);
  74. b[i] = cnt++;
  75. }
  76. else
  77. {
  78. node x = *it;
  79. G[b[-x.id]].push_back(i);
  80. b[i] = b[-x.id];
  81. if(++ans[-x.id] == )
  82. s.erase(it);
  83. }
  84. s.insert(node(-a, -i));
  85.  
  86. }
  87. pd(cnt);
  88. for(int i = ; i < cnt; i++)
  89. {
  90. printf("%d", G[i].size());
  91. for(int j = ; j < G[i].size(); j++)
  92. {
  93.  
  94. printf(" %d", G[i][j]);
  95. }
  96. printf("\n");
  97. }
  98.  
  99. }
  100.  
  101. return ;
  102. }

Heap Partition ZOJ - 3963(贪心)的更多相关文章

  1. zoj 3963 Heap Partition(并查集,贪心,二分)

    Heap Partition Time Limit: 2 Seconds      Memory Limit: 65536 KB      Special Judge A sequence S = { ...

  2. ZOJ 3963 Heap Partition set维护。给一个序列,将其划分成尽量少的序列,使每一个序列满足按照顺序构造二叉树,父母的值<=孩子的值。

    Heap Partition Time Limit: Seconds Memory Limit: KB Special Judge A sequence S = {s1, s2, ..., sn} i ...

  3. zoj-3963 Heap Partition(贪心+二分+树状数组)

    题目链接: Heap Partition Time Limit: 2 Seconds      Memory Limit: 65536 KB      Special Judge A sequence ...

  4. ZOJ 3963 Heap Partition(multiset + stl自带二分 + 贪心)题解

    题意:给你n个数字s1~sn,要你把它们组成一棵棵二叉树,对这棵二叉树来说,所有节点来自S,并且父节点si<=子节点sj,并且i<j,问你树最少几棵二叉数.树 思路:贪心.我们往multi ...

  5. ZOJ 3963:Heap Partition(贪心+set+并查集)

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3963 题意:给出一个n个数的序列,可以在其中找一个子序列建堆,并且堆中的父 ...

  6. zoj 3963 heap partion

    https://vjudge.net/problem/ZOJ-3963 题意: 给出一个数列,可以用这个数列构造一种二叉树,这个二叉树满足数的下标 i <= j,并且 si <= sj,s ...

  7. 【贪心】【set】zoj3963 Heap Partition

    贪心地从前往后扫,每到一个元素,就查看之前的元素中小于等于其的最大的元素是否存在,如果存在,就将它置为其父亲.如果一个结点已经是两个儿子的父亲了,就不能在set中存在了,就将他删除.如果然后将当前元素 ...

  8. ZOJ - 3715贪心

    ZOJ - 3715KindergartenElection 题目大意:幼儿园里正在举办班长选举,除1号小朋友外每个人都会投他最好的朋友,但1号小朋友可以贿赂别人(小伙子有丶想法),被贿赂的小朋友就会 ...

  9. zoj 1375 贪心

    https://vjudge.net/problem/ZOJ-1375 In modern day magic shows, passing through walls is very popular ...

随机推荐

  1. RESTful 规范

    RESTful 规范 前言 rest 是一种软件架构风格,如果使用的是 rest 接口,那么就可以说你的接口是 restful. rest接口是围绕''资源''展开的,利用 HTTP 的协议,其实 r ...

  2. 面试被问烂的 Spring IOC(求求你别再问了)

    广义的 IOC IoC(Inversion of Control) 控制反转,即"不用打电话过来,我们会打给你". 两种实现: 依赖查找(DL)和依赖注入(DI). IOC 和 D ...

  3. .NET知识体系(转载)

    这篇文章为新手指明的学习方向: https://www.cnblogs.com/mcgrady/p/4725038.html 先生存后发展,先学会选择和使用知识和工具来做东西,然后在研究怎么做的再好一 ...

  4. C#/VB.NET设置Excel表格背景色

    在查看很多有复杂的数据的表格时,为了能够快速地找到所需要的数据组时,往往需要对该数据组进行分类,一个简单快速的方法就是对数据组所在的单元格填充背景颜色,这样就使得我们在阅读文件时能够直观的看到数据分类 ...

  5. android 资源

    在进行APP开发的过程当中,会用到许多资源,比如:图片,字符串等.现对android资源知识进行简单记录. 具体的详细信息及用法,点击查看官方文档 分类      一般android资源分为可直接访问 ...

  6. 携程Apollo一键编译脚本+部署实现

    系统编译安装 ubuntu16.11 java 1.8 系统规划 Portal共用 其它环境每个两台机器 mysql都做主从,所以每个环境的机器上都会安装admin 服务,config服务,以及一个m ...

  7. XSS攻击之窃取Cookie

    10 年前的博客似乎有点老了,但是XSS 攻击的威胁依然还在,我们不得不防. 窃取Cookie是非常简单的,因此不要轻易相信客户端所声明的身份.即便这个Cookie是在数秒之前验证过,那也未必是真的, ...

  8. php禁用函数设置及查看方法详解

    这篇文章主要介绍了php禁用函数设置及查看方法,结合实例形式分析了php禁用函数的方法及使用php探针查看禁用函数信息的相关实现技巧,需要的朋友可以参考下 本文实例讲述了php禁用函数设置及查看方法. ...

  9. Dynamics 365 Customer Engagement中插件的调试

    微软动态CRM专家罗勇 ,回复319或者20190319可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 本文主要根据官方的教 ...

  10. 纯Java实现微信朋友圈分享图

    纯Java实现微信朋友圈分享图 1.实现分享图的效果 2.开发环境 2.1 JDK * oracle's jdk 1.8以上 2.2 字体 * 若选择了微软雅黑字体又是代码部署到Linux,则需要安装 ...