二分
by Problem_YSJ @ 2023-08-20 21:02:04
没学过,sorry
by wuzhuoran @ 2023-08-20 21:03:01
而且数据范围是N<20000
by drinktowind @ 2023-08-20 21:05:53
谢谢,大佬,两位已关
by wuzhuoran @ 2023-08-20 21:08:59
```
#include<bits/stdc++.h>
using namespace std;
int n,d,c;
int a[20100];
int main(){
cin>>n>>d;
for(int i=1; i<=n; i++){
cin>>a[i];
}
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++){
if(a[j]<a[i]){
if(a[i]-a[j]==d)c++;
}
}
}
cout<<c;
return 0;
}
```
by wuzhuoran @ 2023-08-20 21:09:43
还是不行啊
by wuzhuoran @ 2023-08-20 21:10:38
```
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll a[200005];
ll n,c,ans;
int main() {
cin>>n>>c;
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
sort(a,a+n);
for(int i=0;i<n;i++){
ans+=upper_bound(a,a+n,a[i]+c)-lower_bound(a,a+n,a[i]+c);
}
cout<<ans;
return 0;
}
```
有些难理解
by glx123 @ 2023-08-20 21:26:13
详解见此题第二篇题解,了解一下两个函数
by glx123 @ 2023-08-20 21:27:28
枚举 a ,找到对应的b
by glx123 @ 2023-08-20 21:28:17
谢谢,大佬
by wuzhuoran @ 2023-08-21 19:22:24