题意:给你一个序列A,然后一个序列B,求在序列A中小于Bi的数的个数
思路:将A序列排序,然后二分查找
总结:刚开始二分写挫了,WA了一发。。。
ac代码:
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stack>
#include<queue>
#include<vector>
#include<iostream>
#include<algorithm>
#define MAXN 1000010
#define LL long long
#define ll __int64
#define INF 0xfffffff
#define mem(x) memset(x,0,sizeof(x))
#define PI acos(-1)
using namespace std;
ll a[MAXN];
int main()
{
int n,m;
int i;
ll b;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=1;i<=n;i++)
scanf("%I64d",&a[i]);
sort(a+1,a+n+1);
while(m--)
{
scanf("%I64d",&b);
int high=n,low=1;
int k=0;
int bz=0;
while(low<=high)
{
int mid=(low+high)/2;
if(a[mid]<=b)
low=mid+1;
//else if(a[mid]>b)
else
high=mid-1;
}
printf(m?"%d ":"%d\n",low-1);
}
}
return 0;
}