萌新求助为什么这个二分过不了
查看原帖
萌新求助为什么这个二分过不了
389729
BantM楼主2024/11/13 22:14

我的二分,只有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);//输出
2024/11/13 22:14
加载中...