rt,这是本人的考场局部代码,用来判断加速度为正的车会被哪个区间的测速仪检测到超速
if(a[i]>0){
if(cs(i,m)&&p[m]>=d[i]){
int l=1,r=m,mid,ll=-1,rr=-1;
while(l<=r){
mid=(l+r)>>1;
// cout<<p[mid]<<" "<<d[i]<<"\n";
if(p[mid]<d[i])l=mid+1;
else r=mid-1,ll=mid;
}
ans1++;
q[++cnt].l=ll,q[cnt].r=m;
}
}
其中 cs(i,m) 是用来判断第 i 车是否会在第 m 个测速仪超速的函数,按理来说if(p[mid]<d[i])l=mid+1;这一行中的条件也应该写!cs(i,mid),因为要找第一个检测到超速的测速仪,但代码中写的是找第一个碰到的的测速仪,而这份代码仍然通过了ccf所有的测试数据。