似乎此题二分也是正解?

P7909 [CSP-J 2021] 分糖果

```cpp #include<bits/stdc++.h> using namespace std; int n,l,r; int f(int L,int R){ if(L==R) return L; if(L+1==R){ if(n+R<=r && n+R>=l) return R; return L; } int mid=(L+R)/2; if(n+mid>=r) return f(L,mid); if(n+mid<=l || (n+mid>=l && n+mid<=r)) return f(mid,R); } int main(){ // freopen("candy.in","r",stdin); // freopen("candy.out","w",stdout); scanf("%d %d %d",&n,&l,&r); int L=0,R=n-1; n=n*(l/n); printf("%d",f(L,R)); return 0; } ```
by BigJoker @ 2021-10-24 10:45:54


妙啊
by ricky0916 @ 2021-10-24 10:49:18


@[ricky0916](/user/289230) 感觉仔细一想也没有问题。
by BigJoker @ 2021-10-24 10:50:36


%%%
by 王君诺 @ 2021-10-24 10:52:19


@[BigJoker](/user/364122) 但是复杂度大了一丢丢
by ricky0916 @ 2021-10-24 11:21:35


@[ricky0916](/user/289230) 对,复杂度是log。
by BigJoker @ 2021-10-24 11:38:04


但这二分是假的吧(虽然说我也写的是二分)
by RE_Prince @ 2022-06-30 19:43:28


|