zoukankan      html  css  js  c++  java
  • HDU 2523 SORT AGAIN (hash)

    SORT AGAIN

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 3092    Accepted Submission(s): 987


    Problem Description
    给你N个整数,x1,x2...xn,任取两个整数组合得到|xi-xj|,(0<i,j<=N,i!=j)。
    现在请你计算第K大的组合数是哪个(一个组合数为第K大是指有K-1个不同的组合数小于它)。
     
    Input
    输入数据首先包含一个正整数C,表示包含C组测试用例.
    每组测试数据的第一行包含两个整数N,K。(1<N<=1000,0<K<=2000)
    接下去一行包含N个整数,代表x1,x2..xn。(0<=xi<=2000)
     
    Output
    对于每组测试数据,请输出第K大的组合数,每个输出实例占一行。
     
    Sample Input
    3 3 2 4 0 7 4 2 1 2 3 4 2 1 2 9
     
    Sample Output
    4 2 7
     
    Source
     
    Recommend
    gaojie
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<vector>
    
    using namespace std;
    
    int n,k,num[1010];
    int hash[2010];
    
    int abs(int num){
        return num<0?-num:num;
    }
    
    int main(){
    
        //freopen("input.txt","r",stdin);
    
        int t;
        scanf("%d",&t);
        while(t--){
            scanf("%d%d",&n,&k);
            for(int i=0;i<n;i++)
                scanf("%d",&num[i]);
            memset(hash,0,sizeof(hash));
            for(int i=0;i<n;i++)
                for(int j=i+1;j<n;j++)
                    hash[abs(num[i]-num[j])]++;
            int cnt=0,ans;
            for(int i=0;i<=2000 && cnt<k;i++)
                if(hash[i]){
                    cnt++;
                    ans=i;
                }
            printf("%d\n",ans);
        }
        return 0;
    }
  • 相关阅读:
    JSP脚本指令
    JSP编译指令——page、include
    c++基础(三):多态
    c++基础(一):数据类型和结构
    c++基础(二):成员he派生类
    python小算法(二)
    python的内存管理
    初识java之Mina(一)
    python的小爬虫的基本写法
    python小算法(一)
  • 原文地址:https://www.cnblogs.com/jackge/p/3094630.html
Copyright © 2011-2022 走看看