超级传送门:
http://acm.hdu.edu.cn/showproblem.php?pid=1425
此题的特点:数据量大,但是数据的范围不大。用hash就行,hash函数就是减500000
#include<stdio.h>
int hash[1000100]={0};
int main () {
int n,m,i,a,count,max,first;
while (scanf("%d%d",&n,&m) != EOF) {
count = 0;
first = 1;
max = -500000;
for (i=0;i<n;i++) {
scanf("%d",&a);
if (a>max) max = a;
hash[a+500000] = 1;
}
for (i=max+500000;i>=0;i--) {
if (count>=m) break;
if (hash[i]) {
if (first) first = 0;
else printf(" ");
printf("%d",i-500000);
count++;
}
}
printf("\n");
}
return 0;
}
本文探讨了一种使用哈希算法解决大数据量问题的方法,通过自定义减500000的哈希函数,有效地处理了大规模数据输入。详细介绍了算法实现过程及其实现代码,为处理大数据提供了高效解决方案。
912

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



