点击打开链接

还记得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<string.h>

#include<algorithm>

using namespace std;

bool cmp(int a,int b)

{

return a > b;

}

int main()

{

int num[3010],sum[100000];

int n,m;

    while(~scanf("%d%d",&n,&m)) 

{



for(int i=1;i<=n;i++)





scanf("%d",&num[i]);
//一个空格引起的悲剧 直接给数组赋值 



int q=1;


for(int f=1; f<=n; f++)

{



  for(int g=1+f;g<=n; g++)
//g=1+f 

  {

  

  sum[q]=num[f]+num[g];

  q++;

}

}

sort(sum+1,sum+q+1,cmp);

for(int w=1;w<=m;w++)

printf("%d ",sum[w]);









}

return 0;


}

参考答案

#include<cstdio>  

#include<cstring>  

#include<algorithm>  

using namespace std;  

bool cmp(int a,int b)  

{  

    return a>b;  

}  

int c[5000000];  

int main()  

{  

    int n,m;  

    int a[3010];  

    while(~scanf("%d%d",&n,&m))  

    {  

        for(int i=1;i<=n;i++)  

            scanf("%d",&a[i]);  

        int num=1,ant=1;  

        for(int i=1;i<=n;i++)  

        {  

            for(int j=i+1;j<=n;j++)          //这个地方用j=i+1比较好   

            {  

                c[num]=a[i]+a[j];               //c[num]存两两相加的值         数组之间的运算

                num++;  

            }  

        }  

        sort(c+1,c+num+1,cmp);  

        for(int i=1;i<m;i++)  

            printf("%d ",c[i]);  

        printf("%d\n",c[m]);  

    }  

    return 0;  

}

C - 前m大的数 (结构体)的更多相关文章

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

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

  2. 找出数组前N大的数

    这个题也是个比较有名的面试题.当然有很多变种. 题目意思基本是:从一个数据量很大的数组里找前N大的元素.不允许排序. 这个题有两个比较好的思路: 思路一:用快速排序的思想,是思想,不是要排序; 思路二 ...

  3. HDU 1280 前m大的数

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

  4. 输出前n大的数(分治)

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

  5. 4J - 前m大的数

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

  6. 前m大的数(hdu1280)

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

  7. 7617:输出前k大的数

    7617:输出前k大的数 查看 提交 统计 提问 总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB 描述 给定一个数组,统计前k大的数并且把这k个数从大到小 ...

  8. 输出前 k 大的数

    总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB 描述 给定一个数组,统计前k大的数并且把这k个数从大到小输出. 输入 第一行包含一个整数n,表示数组的大小 ...

  9. hdu 1280 前m大的数 哈希

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

  10. 杭电 1280 前m大的数

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

随机推荐

  1. 关于session报错问题。

    刚开始一直报500错误,页面不提示,也没想着去查看日志文件.好几天了,一看日志,发现是这个问题.问了一下,是session的问题. 2017/07/25 16:57:49 [error] 2300#0 ...

  2. idea 注释文件和方法注释

    类注释: 如下图所示

  3. instanceof用法及本质:

    import static java.lang.System.*; public class InstanceofTest{ public static void main(String[] args ...

  4. 设计模式之Adapter设计模式

    这个设计模式是我这两天刚学的,这儿算是我的读书笔记发布出来是供大家一起学习,后面有我自己的感悟,下面是我网上整理的 以下情况使用适配器模式 • 你想使用一个已经存在的类,而它的接口不符合你的需求. • ...

  5. cubieboard安装小记

    1.1.使用ttl线 ttl线驱动程序:PL2303_Prolific_DriverInstaller_v1.7.0.exe(驱动精灵上下载) ttl终端:http://the.earth.li/~s ...

  6. Alien::BatToExeConverter 模块应用

    ##  DOS 下批量任务转换成exe二进制可执行文件 Convert a DOS Batch Script to an Executable Alien::BatToExeConverter::ba ...

  7. C语言基础第二次作业

    PTA第一次作业 题目7-1  统计学生成绩 1.实验代码 #include<stdio.h> int main(void){ ,B=,C=,D=,E=,f; scanf("%d ...

  8. Remove duplicates

    https://github.com/Premiumlab/Python-for-Algorithms--Data-Structures--and-Interviews/blob/master/Moc ...

  9. KbmMW 服务器架构简介

    kbmmw 由于文档比较少,很多同学开始用时很难理解.一直准备写一个关于kbmmw 架构的东西. 这几天与红鱼儿(blog)研究服务器线程时,整理了一下,大概画了一下kbmmw (版本4.5)服务器的 ...

  10. MySQL之练习题5

    .将所有的课程的名称以及对应的任课老师姓名打印出来,如下: SELECT cname,tname FROM course INNER JOIN teacher WHERE course.teacher ...