我的二分,只有40
int l=0,r=1e6+1;
while(l+1<r){
int mid=(l+r)/2;
if(spfa(mid)){
r=mid;
}
else l=mid+1;
}
if(spfa(l))cout<<l;return 0;
if(spfa(r))cout<<r;return 0;
cout<<-1<<endl;
这个是题解的,改到我代码里就100了
ans=-1;
int l=0,r=1000000;
while(l<=r) {
int mid=(l+r)>>1;
if(spfa(mid)) {
ans=mid;
r=mid-1;
} else l=mid+1;
}
write(ans);