例如:问题:
每次询问给一个数 x,回答 a1,a2,…,an 里面分别有多少个数字小于 x
回答知识点:二分
二分可以解决的这类问题的共同点:数组中存在一条分界线,使得分界线左边的位置都满足某个条件并且右边的位置都不满足某个条件
二分实现代码:
int L1 = 0,R1 = n + 1;
while (L1 + 1 < R1){
int M = (L1 + R1) / 2;
if (a[M] < l){
L1 = M;
}
else{
R1 = M;
}
}