用upper/lower_bound
2026-07-03 13:06:15
发布于:四川
7阅读
0回复
0点赞
众所周知
[1]
so
我们可以用for来编程
#include<iostream>
#include<algorithm>//函数必备
using namespace std;
const int N=1e6+10;//开大亿点
int a[N];
int main(){
int n,c;
cin>>n>>c;
for(int i=1;i<=n;i++){
cin>>a[i];
}sort(a+1,a+n+1);//一定要排序
int cnt;
cnt=0;
for(int i=1;i<=n;i++){
int x=a[i]+c;
cnt+=(upper_bound(a+1,a+n+1,x)-a)-(lower_bound(a+1,a+n+1,x)-a);//求对应数字的个数
}cout<<cnt;
return 0;
}
=第一个大于x的数,=第一个大于等于x的数,=查询数字的个数 ↩︎
这里空空如也








有帮助,赞一个