hdu5178 尺取
Posted zsben991126
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu5178 尺取相关的知识,希望对你有一定的参考价值。
会爆int
/* 给定数轴上一些点对,问有多少点对之间的距离差不超过k 点对排序后尺取法:枚举每个左边界,找到一个右边界使得 */ #include<bits/stdc++.h> #define maxn 100005 using namespace std; int n,k,sum,l,r,x[maxn]; long long ans; int main(){ int t; scanf("%d",&t); while(t--){ scanf("%d%d",&n,&k); for(int i=1;i<=n;i++) scanf("%d",&x[i]); sort(x+1,x+1+n); l=r=sum=1;ans=0; for(l=1;l<=n;l++){ while(x[r]-x[l]<=k && r<=n) r++; ans+=r-l-1; } printf("%lld ",ans); } return 0; }
以上是关于hdu5178 尺取的主要内容,如果未能解决你的问题,请参考以下文章