前m大的数(HDU_1280) 计数排序
来源:互联网 发布:知乎 女生 打男朋友 编辑:程序博客网 时间:2024/05/17 16:44
前m大的数
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 15953 Accepted Submission(s): 5450
Problem Description
还记得Gardon给小希布置的那个作业么?(上次比赛的1005)其实小希已经找回了原来的那张数表,现在她想确认一下她的答案是否正确,但是整个的答案是很庞大的表,小希只想让你把答案中最大的M个数告诉她就可以了。
给定一个包含N(N<=3000)个正整数的序列,每个数不超过5000,对它们两两相加得到的N*(N-1)/2个和,求出其中前M大的数(M<=1000)并按从大到小的顺序排列。
给定一个包含N(N<=3000)个正整数的序列,每个数不超过5000,对它们两两相加得到的N*(N-1)/2个和,求出其中前M大的数(M<=1000)并按从大到小的顺序排列。
Input
输入可能包含多组数据,其中每组数据包括两行:
第一行两个数N和M,
第二行N个数,表示该序列。
第一行两个数N和M,
第二行N个数,表示该序列。
Output
对于输入的每组数据,输出M个数,表示结果。输出应当按照从大到小的顺序排列。
Sample Input
4 41 2 3 44 55 3 6 4
Sample Output
7 6 5 511 10 9 9 8
Author
Gardon
题目大意:按从大到小输出n个数两数自和;
解题思路:计数排序。
#include"iostream"#include"cstdio"#include"cstring"using namespace std;const int maxn = 10005;int cnt[maxn];int num[3005];int max(int x, int y){return x > y ? x : y;}int main(){int n, k, t, max_sum;while(scanf("%d%d", &n, &k) != EOF){memset(cnt, 0, sizeof cnt);max_sum = 0;for(int i = 1;i <= n;i ++)scanf("%d", &num[i]);//if(k == 0) continue;for(int i = 1;i <= n-1;i ++)for(int j = i+1;j <= n;j ++){t = num[i] + num[j];cnt[t] ++;max_sum = max(t, max_sum);}int r = max_sum, f = 0;while(k){while(cnt[r]&&k){if(f == 0) printf("%d", r);else printf(" %d", r);f = 1;cnt[r] --;k --;}r --;}printf("\n");}return 0;}
0 0
- 前m大的数(HDU_1280) 计数排序
- HDU 1280 前m大的数(计数排序)
- hdu 1280 前m大的数 计数排序
- hdoj-1280-前m大的数【计数排序】
- HDU 1280 前m大的数 (排序)
- hdu1280 前m大的数(数组下标排序)
- 快速排序问题(输出前m大的数)
- HDOJ1280(前m大的数)
- 前m大的数
- 前m大的数
- 前m大的数
- 前m大的数
- 前m大的数
- 前m大的数
- 前m大的数
- 前m大的数
- 前m大的数
- 前m大的数
- 近期打字测试的成绩(10)
- iOS中堆和栈的区别
- Jquery-2简单的登录输入框判断
- cocos2d DrawNode图形渐变
- PHP2016/6/7学习笔记-first day
- 前m大的数(HDU_1280) 计数排序
- java swing-绘制2D图形,圆,矩形直线
- 安卓2048小游戏源码
- BZOJ 1100 [POI2007]对称轴osi
- android stdio设置主题
- 安装 ODAC
- 变量
- Android自定义圆角ImageView 支持网络图片
- 30. Substring with Concatenation of All Words 算法分析及其优化