Rt为什么在“if(a[i]<=f[mid]) r=mid”这行中,如果换用成r=mid-1会发生错误?
锰锌在线求解qwq~~~
for(int i=2;i<=n;i++){ int l=0,r=len,mid; if(a[i]>f[len]) f[++len]=a[i]; else{ while(l<r){ mid=(l+r)/2; if(a[i]<=f[mid]) r=mid; else l=mid+1; } f[l]=min(f[l],a[i]); } }