#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+5;
const int mm=5e5;//偏移量
int a[maxn],b[maxn];
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF){
memset(b,0,sizeof(b));
int k;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
k=a[i]+mm;//用下标表示输入的值
b[k]++;//标记相同数值的个数
}
int c=1;
for(int i=maxn;i>=0;i--){//下标从后往前遍历,代表从大到小
while(b[i]&&c<=m){
if(c==m){
printf("%d",i-mm);
c++;
break;
}
printf("%d ",i-mm);
b[i]--;
c++;
}
}
printf("\n");
}
return 0;
}
hdu1425哈希(桶排序)
该篇博客主要介绍了如何利用C++编程解决寻找数组中最大子序列和的问题。通过动态规划实现,代码简洁高效。博主首先解释了问题背景,然后详细讲解了代码逻辑,并给出了完整的代码实现。此问题涉及到了数组处理和动态规划算法。

被折叠的 条评论
为什么被折叠?



