前m大的数

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 10574    Accepted Submission(s): 3686

Problem Description
还记得Gardon给小希布置的那个作业么?(上次比赛的1005)事实上小希已经找回了原来的那张数表,如今她想确认一下她的答案是否正确,可是整个的答案是非常庞大的表。小希仅仅想让你把答案中最大的M个数告诉她就能够了。 
给定一个包括N(N<=3000)个正整数的序列,每一个数不超过5000。对它们两两相加得到的N*(N-1)/2个和。求出当中前M大的数(M<=1000)并按从大到小的顺序排列。
Input
输入可能包括多组数据,当中每组数据包括两行: 
第一行两个数N和M, 
第二行N个数,表示该序列。
Output
对于输入的每组数据,输出M个数,表示结果。输出应当依照从大到小的顺序排列。
Sample Input
4 4 1 2 3 4 4 5 5 3 6 4
Sample Output
7 6 5 5 11 10 9 9 8
统计每一个数出现的次数 然后从大到小输出
#include<stdio.h>
#include<cstring>
int main()
{int hash[10010];int a[3010];int n,m;int i,j;while(scanf("%d %d",&n,&m)!=EOF){memset(hash,0,sizeof(hash));for(i=0;i<n;i++){scanf("%d",&a[i]);}int xx=0;for(i=0;i<n;i++){for(j=0;j<i;j++){hash[a[i]+a[j]]++;if(a[i]+a[j]>xx){xx=a[i]+a[j];}}}for(i=xx;i>=0;i--){while(hash[i]&&m>1){printf("%d ",i);hash[i]--;m--;}if(m==1&&hash[i]){printf("%d\n",i);break;}}}return 0;
}

hdu 1280 前m大的数 哈希相关推荐

  1. HDU 1280 前m大的数(暴力)

    前m大的数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  2. HDU - 1280 前m大的数

    Description 还记得Gardon给小希布置的那个作业么?(上次比赛的1005)其实小希已经找回了原来的那张数表,现在她想确认一下她的答案是否正确,但是整个的答案是很庞大的表,小希只想让你把答 ...

  3. HDU - 128 前m大的数

    还记得Gardon给小希布置的那个作业么?(上次比赛的1005)其实小希已经找回了原来的那张数表,现在她想确认一下她的答案是否正确,但是整个的答案是很庞大的表,小希只想让你把答案中最大的M个数告诉她就 ...

  4. 【面试现场】如何在10亿数中找出前1000大的数

    小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 之前小史在BAT三家的面试中已经挂了两家,今天小史去了BAT中的最后一家面试了. 简单的 ...

  5. hdu1280 前m大的数(数组下标排序)

    前m大的数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  6. 如何在10亿数中找出前1000大的数

    1.排序方法 首先能想到的就是先排序,然后取前1000个数,或者部分排序,只排出前1000个数就行 缺点:这些方法的时间复杂度都比较高 2,分治法 可以使用分治法,这有点类似快排中partition的 ...

  7. C语言(CED)输出前k大的数(分治法/局部快速排序):给定一个数组,统计前k大的数并且把这k个数从大到小输出。

    )输出前k大的数(分治法/局部快速排序):给定一个数组,统计前k大的数并且把这k个数从大到小输出. [输入] 第一行包含一个整数n,表示数组的大小. 第二行包含n个整数,表示数组的元素,整数之间以一个 ...

  8. 信息学奥赛一本通(1235:输出前k大的数)——堆排序

    1235:输出前k大的数 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 12715     通过数: 4043 [题目描述] 给定一个数组,统计前k大的数并且把这 ...

  9. 输出前k大的数(信息学奥赛一本通-T1235)

    [题目描述] 给定一个数组,统计前k大的数并且把这k个数从大到小输出. [输入] 第一行包含一个整数n,表示数组的大小.n < 100000. 第二行包含n个整数,表示数组的元素,整数之间以一个 ...

最新文章

  1. Fedora 15 安装与配置一览
  2. how to write Makefile
  3. 小猿圈linux之使用VMware workstation安装Linux虚拟机
  4. 机器人 陆梅东_机器人知识与实践比赛获奖 - 上海徐汇区青少年活动中心
  5. MATLAB与图像处理(三):图像分成块
  6. 全球规模最大的全浸没式液冷数据中心落户杭州余杭
  7. Oracle的row_number函数
  8. MIPI DSI协议介绍
  9. Python二级笔记(18,19合集知识点篇)
  10. linux安装KVM
  11. keil5 mdk安装教程
  12. 学习Python的几个优质平台
  13. springCloud报错No instances available
  14. vs2010学习版loadimage();函数载入图片无法加载的问题
  15. 世平信息商用密码应用检查系统正式发布!数字时代合规管控路径再突破
  16. 漏洞挖掘时SQL注入漏洞和XSS漏洞需注意的关键字
  17. 分布式认知工业互联网赋能工业企业数字化转型
  18. this application requires.net framework4.0,please install the.net framework then run this installer
  19. Unity小游戏2D(见缝插针)
  20. 以太坊智能合约交互调用,web3.js,web3j两种方式实现

热门文章

  1. boost::coroutine模块实现合并数组的测试程序
  2. GDCM:gdcm::VR的测试程序
  3. ITK:单相Chan和Vese稀疏场水平集分割
  4. ITK:跳过特定区域时在图像上迭代
  5. VTK:可视化之ScalarBarActorColorSeries
  6. VTK:可视化之LegendScaleActor
  7. VTK:图片之ImageStencil
  8. OpenCV基于ARM的Linux系统的交叉编译
  9. C语言在数组中找到最大的元素(附完整源码)
  10. QT的QEnableSharedFromThis类的使用