错误记录:
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呢?