HDU - 5178 - pairs
2015-03-01 19:21
225 查看
pairs
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 349 Accepted Submission(s): 151
Problem Description
John has n points
on the X axis, and their coordinates are (x[i],0),(i=0,1,2,…,n−1).
He wants to know how many pairs<a,b> that |x−x[a]|≤k.(a<b)
Input
The first line contains a single integer T (about
5), indicating the number of cases.
Each test case begins with two integers n,k(1≤n≤100000,1≤k≤109).
Next n lines
contain an integer x[i](−109≤x[i]≤109),
means the X coordinates.
Output
For each case, output an integer means how many pairs<a,b> that |x[b]−x[a]|≤k.
Sample Input
2 5 5 -100 0 100 101 102 5 300 -100 0 100 101 102
Sample Output
3 10
Source
BestCoder Round #31
[b]写傻逼了,居然还超时了。。
AC代码:
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <cmath> #define LL long long using namespace std; int a[100005]; int main() { int T; scanf("%d", &T); while(T--) { int n, k; scanf("%d %d", &n, &k); for(int i = 0; i < n; i++) { scanf("%d", &a[i]); } sort(a, a+n); LL ans = 0; for(int i = 0, j = 0; i < n; i++) { while(j + 1 < n && a[j + 1] - a[i] <= k) j++; ans += (j - i); } cout << ans << endl; } return 0; }
相关文章推荐
- hdu 5178 pairs(二分,思路)
- HDU 5178 pairs 二分查找
- hdu 5178 pairs
- HDU - 5178 - pairs【尺取法 && 二分】
- 【CUGBACM15级BC第31场 A】hdu 5178 pairs
- hdu 5178 pairs (水题,线性扫描下)
- hdu 5178 pairs
- hdu 5178 pairs (线性探查问题)
- HDU 5178 pairs(二分 STL lower_bound)
- HDU 5178 pairs(双指针)
- hdu 5178 pairs(BC第一题,,方法不止一种,,我用lower_bound那种。。。)
- [HDU](5178)pairs ---二分查找(查找)
- HDU 5178 pairs
- hdu 5178 pairs
- HDU 5178 pairs —— 思维 + 二分
- hdu 5178 pairs (二分)
- HDU 5178 Pairs
- HDU 4750 Count The Pairs(并查集)
- HDU - 4750 Count The Pairs (最小生成树)
- hdu 5178想法题