23暑期vj第六次比赛E - Counting 2
题目>>
题意:给出10^5个人的身高(1 -- 109),并进行105次询问。每次询问高于指定身高的人数。
思路:做题时想到用二分了,但是没敢做,还是对二分掌握得不熟悉,该题直接进行简单二分即可。
点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 5;
int n,q,x;
int a[maxn];
int main(){
cin>>n>>q;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
while(q--){
cin>>x;
int l=1,r=n,ans=0;
while(l<=r){
int mid=l+r>>1;
if(a[mid]>=x){
ans=n-mid+1;
r=mid-1;
}
else
l=mid+1;
}
cout<<ans<<endl;
}
return 0;
}