Homework Introduction

二分查找

    ll=1;rr=n;f=0;
        while(ll<=rr && f==0)
        {
            mid=(ll+rr)/2;
            if(a[mid]==x) f=1;
            if(a[mid]>x) rr=mid-1;
            if(a[mid]<x) ll=mid+1;
        }

二分答案

模板1(求...最大值的最小 )

//往左找答案,,mid不用加一,r=mid,l加一;
	while (l < r)
    {
        int mid = l + r >> 1;	//(l+r)/2或者l+(r-l)/2
        if (check(mid))  r = mid;    // check()判断mid是否满足性质
        else l = mid + 1;
    }

模板2(求...最小值的最大)

	//往右找答案,mid要加一,l=mid,r要减一;
	while (l < r)
    {
        int mid = l + r + 1 >> 1;	//(l+r+1)/2
        if (check(mid))  l = mid;
        else r = mid - 1;
    }

Status
Done
Problem
4
Open Since
2025-4-19 0:00
Deadline
2025-4-27 23:59
Extension
24 hour(s)