错误记录:
RE*4
WA*4
AC*1
一开始数组开小了,还以为是TLE
改过来后,发现查找不是二分。现场百度结果漏了个"="又wa了四次,所以大家千万不要学我,一定要细心细心再细心!!!
由于并不理解线段树是个神马,所以用long long ago做导弹拦截时的思想做这道题
思想神马的不多说,详情请见千叶繁华大佬的导弹拦截题解
这里好好讲讲二分查找(一开始手写发现是O(n)的)
int xunzhao(
int u)
{
int l=
0,r=
len;
while(r>l)
//l必须是左端点,r必须是右端点
{
int mid=(l+r)/
2;
if(d[mid]>=a[u])
//如果这里不加“=”,就会把比a[u]大的最小的d[i]更新为a[u],但是我们不确定d[i-1]是否等于a[u]。如果是,那么这样错误更新后的d就不是一个严格上升的序列了。
{r=
mid;
}
else l=mid+
1;
//这里为了保证下一个二分点向下取整,才让r=mid,l=mid+1
}
return l;
}
吐槽:上次文件名取错了,爆0,这次freopen拼错了,爆0,下次又会是怎样的爆0呢?
转载于:https://www.cnblogs.com/lcez56jsy/p/10797826.html