HDUOJ --2523

 

哈希表..球阀
代码:
#include<iostream>

#include<vector>

#include<stdio.h>

#include<algorithm>

#include<functional>

using namespace std;

bool hash[2000];

int main()

{

    int c,n,k,i,j;

    scanf("%d",&c);

    while(c--)

    {

      scanf("%d%d",&n,&k);

      memset(hash,0,sizeof(hash));

      vector<int>sav(n);

      for(i=0;i<n;i++) 

          scanf("%d",&sav[i]);

       sort(sav.begin(),sav.end(),less<int>());

       for(i=0;i<n;i++)

       {

           for(j=i+1;j<n ;j++)

           {

              hash[sav[j]-sav[i]]=true;

           }

       }

       for(i=0;i<=2000&&k>0;i++)

       {

           if(hash[i])   k--;

       }

       printf("%d\n",i-1);

    }

    return 0;

}

想到过很多方法,都超时了,看了别人的代码,才发现,有这么一出,居然没想到...爱,菜鸟,终究是菜鸟...

你可能感兴趣的:(HDU)