• hdu2523


    SORT AGAIN

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


    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
     
    思路:用hash数组
     
    代码:
    #include<iostream>
    #include<stdio.h>
    #include<math.h>
    #include<string.h>
    using namespace std;
    int main()
    {
        int c,n,k,i,l,j,a[1011],hash[2222],b[2222];
        scanf("%d",&c);
        while(c--)
        {
            memset(hash,0,sizeof(hash));
            scanf("%d%d",&n,&k);
            scanf("%d",&a[0]);
            for(i=1;i<n;i++)
            {
                scanf("%d",&a[i]);
                for(j=i-1;j>=0;j--)
                 hash[(int)fabs(a[i]-a[j])]=1;
            }
            j=0;
            for(i=0;i<2222;i++)
             if(hash[i])
             b[j++]=i;
            printf("%d ",b[k-1]);
        }
        return 0;
    }
     
  • 相关阅读:
    联盟自助服务
    联盟防沉迷验证
    联盟用户协议
    联盟常见问题2
    数据结构实验之链表五:单链表的拆分
    数据结构实验之链表四:有序链表的归并
    数据结构实验之链表三:链表的逆置
    数据结构实验之链表七:单链表中重复元素的删除
    师--链表的结点插入
    数据结构实验之链表二:逆序建立链表
  • 原文地址:https://www.cnblogs.com/lxm940130740/p/3442119.html
Copyright © 2020-2023  润新知