HDU2523 SORT AGAIN【水题】
来源:互联网 发布:路由器封端口 编辑:程序博客网 时间:2024/04/27 16:31
SORT AGAIN
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4513 Accepted Submission(s): 1444
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
HDU 2008-10 Programming Contest
题目大意:给你N个数,找出这N个数中,两个数之间的差值的绝对值第K小的那两个数
的差的绝对值。
思路:因为数的范围是[0,2000],所以差的绝对值范围也是[0,2000]。用数组A[]存下N
个数。然后两重循环遍历这N个数,将差的绝对值作为下标,统计相同差的绝对值有多少
个,存入数组ab[]中。最后从前到后遍历一遍数组ab[],每找到差的绝对值不为0的ab[i],
就让K--。当K = 0,就找到了答案。
#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;int A[1100],ab[2200];int main(){ int T; cin >> T; while(T--) { memset(ab,0,sizeof(ab)); int N,K; cin >> N >> K; for(int i = 0; i < N; ++i) cin >> A[i]; for(int i = 0; i < N; ++i) { for(int j = i+1; j < N; ++j) { ab[abs(A[i]-A[j])]++; } } for(int i = 0; i <= 2000; ++i) { if(ab[i]) K--; if(K == 0) { cout << i << endl; break; } } } return 0;}
0 0
- HDU2523 SORT AGAIN【水题】
- HDU2523:SORT AGAIN
- Hdu2523 - SORT AGAIN - 哈希
- hdu2523
- HDU 2523--SORT AGAIN【水题】
- HDU 2523 SORT AGAIN
- SORT AGAIN 2523
- hdu SORT AGAIN *
- hdu 2523 SORT AGAIN
- hdu 2523SORT AGAIN
- hdu 2523 sort again
- hdoj-2523-SORT AGAIN
- HDOJ 2523 SORT AGAIN
- hdu2523哈希水题
- 数学题hdu2523
- 杭电2523(SORT AGAIN)
- HDOJ(HDU) 2523 SORT AGAIN(推导排序、、)
- HDU1789Doing Homework again(贪心+sort)
- poj 2485 prim
- 【2014-3】day3 T2 攻城略池
- logback使用
- BZOJ 2957 楼房重建 分块
- 【JSP】JSP项目相对路径与绝对路径问题
- HDU2523 SORT AGAIN【水题】
- SpringMVC介绍之Validation
- 天声人語 20150201
- CPU型号及寄存器位数
- 关于全志A20的Ubuntu12.04 64位系统下环境配置及编译过程笔记
- 日经春秋 20150201
- 解决ORA-01652(无法扩展表空间)问题
- 日经社説 20150201 無人機市場を広げるために
- Leetcode - Remove Duplicates from Sorted List II