HDU 1280 前m大的数(哈希)

来源:互联网 发布:淘宝京东刷销量给好评 编辑:程序博客网 时间:2024/06/03 06:51

开数组直接哈希即可。

#include <cstdio>#include <cstring>#include <iostream>using namespace std;const int maxn=10000+5;const int N=3000+5;int hash[maxn];int a[N];int main(){    int n,m;    while(~scanf("%d%d",&n,&m))    {        memset(hash,0,sizeof(hash));        for(int i=0; i<n; i++)        {            scanf("%d",&a[i]);            for(int j=0; j<i; j++)                hash[a[i]+a[j]]++;        }        for(int i=10000; i>=0&&m; i--)        {            while(hash[i]&&m)            {                if(m!=1) printf("%d ",i);                else printf("%d\n",i);                hash[i]--;                m--;            }        }    }    return 0;}


原创粉丝点击