Description

2015胡润全球财富榜调查显示,个人资产在1000万以上的高净值人群达到200万人,假设给出N个人的个人资产值,请你快速找出排前M位的大富翁。
Input

首先输入两个正整数N( N ≤ 10^6)和M(M ≤ 10),其中N为总人数,M为需要找出的大富翁数目,接下来给出N个人的个人资产,以万元为单位,个人资产数字为正整数,数字间以空格分隔。
Output

一行数据,按降序输出资产排前M位的大富翁的个人资产值,数字间以空格分隔,行末不得有多余空格。

Sample
Input

6 3
12 6 56 23 188 60

Output

188 60 56

Hint

请用堆排序完成。

//优先队列实现
#include<bits/stdc++.h>using namespace std;int main()
{int n, m, t;priority_queue< int, vector<int>, greater<int> >q;scanf("%d%d", &n, &m);for(int i = 0; i < m; i++){scanf("%d", &t);q.push(t);}for(int i = 0; i < n - m; i++){scanf("%d", &t);if(t > q.top()){q.pop();q.push(t);}}stack<int> p;while(!q.empty()){p.push(q.top());q.pop();}while(!p.empty()){if(p.size() == 1)cout << p.top() << endl;elsecout << p.top() << " ";p.pop();}return 0;
}//一般方法
#include<bits/stdc++.h>using namespace std;int h[20];
int m;void shiftDown(int i)
{int t, flag = 0;while(2 * i <= m && flag == 0){if(h[i] > h[2 * i])t = 2 * i;elset = i;if(2 * i + 1 <= m){if(h[t] > h[2 * i + 1])t = 2 * i + 1;}if(t != i){swap(h[t], h[i]);i = t;}else flag = 1;}
}int main()
{ios::sync_with_stdio(0);int n, len;cin >> len >> m;for(int i = 1; i <= m; i++)cin >> h[i];for(int i = m / 2; i >= 1; i--)shiftDown(i);n = m;for(int i = m + 1; i <= len; i++){int k;cin >> k;if(k > h[1]){h[1] = k;for(int j = m / 2; j >= 1; j--)shiftDown(j);}}while(m > 1){swap(h[m], h[1]);m--;shiftDown(m);}for(int i = 1; i <= n; i++){printf("%d%c",h[i], i == n ? '\n' : ' ');}return 0;
}

D - 数据结构实验之排序四:寻找大富翁相关推荐

  1. 数据结构实验之排序四:寻找大富翁__咳咳咳,还魂篇!!

    数据结构实验之排序四:寻找大富翁 Time Limit: 200MS  Memory Limit: 512KB Submit  Statistic Problem Description 2015胡润 ...

  2. 数据结构实验之排序四:寻找大富翁 SDUT

    数据结构实验之排序四:寻找大富翁 SDUT Time Limit: 200 ms Memory Limit: 512 KiB Submit Statistic Problem Description ...

  3. 数据结构实验之排序四:寻找大富翁

    题目描述 2015胡润全球财富榜调查显示,个人资产在1000万以上的高净值人群达到200万人,假设给出N个人的个人资产值,请你快速找出排前M位的大富翁. 输入 首先输入两个正整数N( N ≤ 10^6 ...

  4. SDUT OJ 数据结构实验之排序一:一趟快排

    数据结构实验之排序一:一趟快排 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descrip ...

  5. SDUT_2119 数据结构实验之链表四:有序链表的归并

    点击打开链接 数据结构实验之链表四:有序链表的归并 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem ...

  6. SDUT OJ 数据结构实验之链表四:有序链表的归并

    数据结构实验之链表四:有序链表的归并 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Desc ...

  7. SDUT 3400 数据结构实验之排序三:bucket sort

    数据结构实验之排序三:bucket sort Time Limit: 150MS Memory Limit: 65536KB Submit Statistic Problem Description ...

  8. 数据结构实验之栈四:括号匹配

     数据结构实验之栈四:括号匹配 Description 给你一串字符,不超过50个字符,可能包括括号.数字.字母.标点符号.空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配. Inp ...

  9. 数据结构实验之排序七:选课名单

    数据结构实验之排序七:选课名单 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 随着学校规模 ...

最新文章

  1. 为机柜鸣冤:数据中心被忽视的重要设备
  2. 突然远程连接不上mysql_navicat突然连接不上远程linux服务器上的mysql
  3. excel vba 调用webbrowser_Python杀死Excel?我只会用Python来增强Excel!
  4. python实现dns劫持_Python程序之DNS劫持
  5. linux用户详细登录日志文件,Linux登录日志
  6. maven基础--IDEA集成
  7. android开启前台服务_Android 知识点必知之ANR与OOM
  8. [常微分方程的数值解法系列一] 常微分方程
  9. 密码攻略 黑客亲手打造QQ密码破解器(转)
  10. 对抗神经网络学习(简单的理解)
  11. gin html模板调用js函数
  12. SQL 遇到以零作除数错误——用NULLIF()函数处理为0的分母
  13. 2012年的Android之旅:梦想、学习、坚持、自信、淡定
  14. fastlane php,fastlane自动化打包ipa并发布到firim或者蒲公英
  15. 数影周报:小米汽车供应商被罚100万,1688延迟下线“1688买家旺旺”
  16. [ukulele]入门指南
  17. VBA遍历文件夹下的所有文件
  18. TDH添加自定义参数
  19. 解决Windows Explorer 奇怪的卡顿问题
  20. Java/eclipse新建项目TR51,编写程序计算各小组学生的平均成绩和总成绩,并计算所有学生的平均成绩

热门文章

  1. 关于后端java项目使用SpringBoot框架的报错总结
  2. 【LeetCode从零单排】No221.Maximal Square
  3. 【LeetCode从零单排】No14.LongestCommonPrefix
  4. Spring整合redis,通过sentinel进行主从切换。(何志雄)--转
  5. solr查询特殊字符的处理
  6. ibatis annotations 注解方式返回刚插入的自增长主键ID的值--转
  7. 当当网高可用架构之道--转
  8. 大战C100K之-Linux内核调优篇--转载
  9. 《Credit Risk Scorecard》第八章: Scorecard Implementation
  10. 深度机器学习中的batch的大小对学习效果有何影响?