• HDU-2523 SORT AGAIN


    http://acm.hdu.edu.cn/showproblem.php?pid=2523

    学习哈希和注意i++,后要--i;

                       SORT AGAIN

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

    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
    #include<iostream>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    int main()
    {
    	int t,n,k,i,a[2000],j,b[2000];
    	scanf("%d",&t);
    	while(t--)
    	{
    		scanf("%d%d",&n,&k);
    		for(i=0;i<n;i++)
    		   scanf("%d",&a[i]);
    		memset(b,0,sizeof(b));
    		  sort(a,a+n);
    		for(i=0;i<n;i++)
    			for(j=i+1;j<n;j++)
    				b[a[j]-a[i]]=1;
    		   i=0;
    		   while(k!=0)
    		       k-=b[i++];
    		printf("%d
    ",--i);//注意i++,后要--i;
    	}
    	return 0;
    }
                    
    
  • 相关阅读:
    Codeforces Round #296 (Div. 2B. Error Correct System
    实验十二 图的建立与遍历
    1561: (More) Multiplication
    1562: Fun House
    hdu 2203 亲和串
    hdu 3549Flow Problem
    poj 2182 Lost Cows
    poj 3468A Simple Problem with Integers
    hdu1698 Just a Hook
    栈和队列的面试题Java实现
  • 原文地址:https://www.cnblogs.com/cancangood/p/3442084.html
Copyright © 2020-2023  润新知