hdu1280 前m大的数(数组下标排序)
前m大的数
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 13442 Accepted Submission(s): 4588
给定一个包括N(N<=3000)个正整数的序列,每一个数不超过5000,对它们两两相加得到的N*(N-1)/2个和。求出当中前M大的数(M<=1000)并按从大到小的顺序排列。
第一行两个数N和M,
第二行N个数。表示该序列。
输出应当依照从大到小的顺序排列。
4 4
1 2 3 4
4 5
5 3 6 4
7 6 5 5
11 10 9 9 8
不知道别人是怎么做的。看到别人好像sort都能过。
。。
#include <stdio.h>
#include <string.h>
#define inf 0x3fffffff
int a[10005]={0},b[3005];
int main()
{
int n,m,max;
while(scanf("%d %d",&m,&n)!=EOF)
{
max=-inf;//为了缩短时间
for(int i=0;i<m;i++)
{
scanf("%d",&b[i]),a[b[i]]++;
if(b[i]>max)
max=b[i];
}
for(int i=0;i<m;i++)
for(int j=i+1;j<m;j++)
{
a[b[i]+b[j]]++;
if(b[i]+b[j]>max)
max=b[i]+b[j];
}
int j;
for(j=max;j>=0;j--)//格式~
{
if(a[j])
{
printf("%d",j),a[j]--;
break;
}
}
n--;
for(int i=j;i>=0;i--)
{
if(a[i])
{
while(a[i]&&n)
printf(" %d",i),a[i]--,n--;
}
if(n==0)
break;
}
printf("\n");
max=-inf;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
}
return 0;
}
hdu1280 前m大的数(数组下标排序)的更多相关文章
- HDU1280前m大的数creat at 9:51,3.13,2016
前m大的数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- hdu---(1280)前m大的数(计数排序)
前m大的数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- 【水题】HDU--1280 前m大的数
还记得Gardon给小希布置的那个作业么?(上次比赛的1005)其实小希已经找回了原来的那张数表,现在她想确认一下她的答案是否正确,但是整个的答案是很庞大的表,小希只想让你把答案中最大的M个数告诉她就 ...
- 找出数组前N大的数
这个题也是个比较有名的面试题.当然有很多变种. 题目意思基本是:从一个数据量很大的数组里找前N大的元素.不允许排序. 这个题有两个比较好的思路: 思路一:用快速排序的思想,是思想,不是要排序; 思路二 ...
- 前m大的数(hdu1280)
前m大的数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- 【hdu1280】前M大的数
前m大的数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- 4J - 前m大的数
还记得Gardon给小希布置的那个作业么?(上次比赛的1005)其实小希已经找回了原来的那张数表,现在她想确认一下她的答案是否正确,但是整个的答案是很庞大的表,小希只想让你把答案中最大的M个数告诉她就 ...
- 输出前 k 大的数
总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB 描述 给定一个数组,统计前k大的数并且把这k个数从大到小输出. 输入 第一行包含一个整数n,表示数组的大小 ...
- HDU 1280 前m大的数【排序 / hash】
前m大的数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
随机推荐
- electron 新手教程 打包 exe
1.安装nodejs(会自动安装npm) 2.桌面新建文件夹 your-app (下面目录结构) your-app/ ├── package.json ├── main.js └── inde ...
- layui Layui-Select多选的使用和注意事项
1.最近买了layadmin的后台框架,使用Layui-Select总结如下 A.配置:我采用的全局引入配置的方式 赋值(选中状态)
- 抓取豆瓣的电影排行榜TOP100
#!/usr/bin/env python # -*- coding:utf-8 -*- """ 一个简单的Python爬虫, 用于抓取豆瓣电影Top前100的电影的名称 ...
- 关于Jwt的一些思考
在使用jwt的过程中发现了两个问题续期和退出的问题. 续期 因为jwt的token在签发之后是有过期时间的,所以就存在管理这个过期时间的问题.我看网上有提出解决方案的大致有下面几个 每次更新过期时间, ...
- 2015 Multi-University Training Contest 1 Assignment
Assignment Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total ...
- mysql5.7 安装方法 (跟旧的不一样了)
MySQL 5.7发布之后很多网友都在说,打开想安装文件夹.但是文件夹中没有DATA目录, 没有mysqly默认库.启动不了数据库,那是因为5.7的数据库的初始化方法和之前的初始化不一样了. 首先这里 ...
- POJ——T 1469 COURSES
http://poj.org/problem?id=1469 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24197 ...
- js时间格式化函数,支持Unix时间戳
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- rpm -qf 的使用技巧,以及怎样查找软件包
首先查看安装的软件包,或者时候安装有某某软件包的命令 rpm (-qa)| grep 软件名 root@mode oldboy]# rpm -qa| grep openssl openssl-dev ...
- Cubieboard学习资源
1.Cubieboard2学习系列学习教程. 2.Cubieboard安装server成功,ssh远程登录. 3.CubieBoard2 A20学习笔记. 4.一个学习CubieTruck的站点. 5 ...