http://acm.hdu.edu.cn/showproblem.php?pid=1280

前m大的数

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 10382    Accepted Submission(s): 3614

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
 
一定要注意数组大小怎么开啊!

看清题目要求非常重要啊~~提交了我n次才过 ,欲哭无泪啊。!


AC代码(一):
这是用sort做的。
<span style="font-size:18px;"><span style="font-size:24px;"></span>
<span style="font-size:18px;">#include <iostream></span>
<span style="font-size:18px;">#include<algorithm>
using namespace std; int a[3005],s[10000]; int cmp(int a,int b)
{
return a>b;
} int main()
{
int n,m,i,j;
while(~scanf("%d%d",&n,&m))
{
memset(s,0,sizeof(s));
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n,cmp); int t=0,p=0;
if(n>100)
t=100;
else
t=n; for(i=0;i<t;i++)
for(j=i+1;j<t;j++)
s[p++]=a[i]+a[j]; sort(s,s+p,cmp);
for(i=0;i<m-1;i++)
cout<<s[i]<<" ";
cout<<s[i]<<endl;
} return 0;
}
</span></span>

AC代码(二):用优先队列做的


<span style="font-size:18px;">#include<iostream>
#include<queue>
#include<cstdio>
using namespace std; int a[3005]; int main()
{
priority_queue<int>q;
int i,j,n,m;
while(~scanf("%d%d",&n,&m))
{
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
q.push(a[i]+a[j]);
for(i=0;i<m-1;i++)
{
printf("%d ",q.top());
q.pop();
}
printf("%d\n",q.top());
}
return 0;
}
</span>

杭电 1280 前m大的数的更多相关文章

  1. HDU 1280 前m大的数

    http://acm.hdu.edu.cn/showproblem.php?pid=1280 前m大的数 Time Limit: 2000/1000 MS (Java/Others) Memory L ...

  2. HDU 1280 前m大的数【排序 / hash】

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

  3. HDU 1280 前m大的数(排序,字符串)

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

  4. hdu 1280 前m大的数 哈希

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

  5. <hdu - 1280> 前M大的数 (注意其中的细节)

    这是杭电hdu上的链接http://acm.hdu.edu.cn/showproblem.php?pid=1280  Problem Description: 还记得Gardon给小希布置的那个作业么 ...

  6. HDU 1280 前m大的数 基数排序

    http://acm.hdu.edu.cn/showproblem.php?pid=1280 题目大意: 给你N(N<=3000)个数(这些数不超过5000),要求输出他们两两相加后和最大的M( ...

  7. HDU 1280 前m大的数【哈希入门】

    题意:中文的题目= =将各种组合可能得到的和作为下标,然后因为不同组合得到的和可能是一样的, 所以再用一个数组num[]数组,就可以将相同的和都记录下来 #include<iostream> ...

  8. hdu 1280 前m大的数(排序)

    题意:排序 思路:排序 #include<iostream> #include<stdio.h> #include<algorithm> using namespa ...

  9. hdu---(1280)前m大的数(计数排序)

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

随机推荐

  1. 深入RecyclerView-为什么要使用ItemDecoration

    Part 1:不要用view做分割线 首先,什么是ItemDecoration?来看看官网是如何解释的. ItemDecoration允许从adapter的数据集合中为特定的item视图添加特性的绘制 ...

  2. Pytorch中的norm跟Numpy中的norm对比

  3. AFLW如何获取你想要的21点人脸关键点数据

    目前人脸检测和人脸的关键点的数据库根据关键点个数:5,20,21,29,68等.https://blog.csdn.net/XZZPPP/article/details/74939823该网页详细列出 ...

  4. Python isdecimal() 方法

    描述 Python isdecimal() 方法检查字符串是否只包含十进制字符.这种方法只存在于unicode对象. 注意:定义一个十进制字符串,只需要在字符串前添加 'u' 前缀即可. 语法 isd ...

  5. TCP 三次握手过程详解

    TCP(Transmission Control Protocol) 传输控制协议 TCP:面向连接的,可靠的,基于字节流的传输层通信协议 TCP(传输层)位于IP层(网络层)之上,应用层之下,不同的 ...

  6. jdbc链接基础

    1 jdbc 链接两种方式,通过jdbc链接mysql数据库,url:jdbc:mysql://ip:端口[/database name] 通过什么驱动器,链接什么数据库,数据库的ip,连接端口,可以 ...

  7. 没有msdtc服务的解决方法(sql server分布式事务挂掉的解决方法)

    没有msdtc服务的解决方法如下:1.删除注册表中的键:  开始 运行 regedit  打开注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic ...

  8. MySQL Subquery

    Summary: in this tutorial, we will show you how to use the MySQL subquery to write complex queries a ...

  9. mybatis的#和$的差别

    在项目中假设使用mybatis保存形如"1,2,3"这种字符串.你须要使用"#"号取值.假设使用$符号会报错, 假设是查询形如"id in (1,2, ...

  10. MySQL防止delete命令删除数据

    在sql中删除数据库中记录我们会使用到delete命令,这样如果不小心给删除了很难恢复了,总结一些删除数据但是不在数据库删除的方法. 方法一 我常用的做法,就是在数据库中加一个删除标识字段,如: is ...